public static function sqlDebug($ms = null, $deBug = false)
{
DB::listen(function ($query) use ($ms, $deBug) {
$tmp = str_replace('?', '"'.'%s'.'"', $query->sql);
$qBindings = [];
foreach ($query->bindings as $key => $value) {
if (is_numeric($key)) {
$qBindings[] = $value;
} else {
$tmp = str_replace(':'.$key, '"'.$value.'"', $tmp);
}
}
$tmp = vsprintf($tmp, $qBindings);
$tmp = str_replace("\\", "", $tmp);
if ($ms) {
if ($query->time < $ms) {
return;
}
}
//$query->time 是sql语句执行的时间
$info = 'execution time:'.$query->time.'ms; '.$tmp."\n\n\t";
if ($deBug) {
YC_Log::info('[sqlDeBug] [%s]', $info);
} else {
var_dump($info);
}
});
}
Laravel listen sql
最新推荐文章于 2025-11-01 16:16:04 发布
本文介绍了一个PHP函数,用于在执行SQL语句时进行实时监控,记录执行时间和详细查询内容。通过$ms参数设置阈值,仅记录超过该时间的查询,便于排查性能问题。同时提供了调试模式和信息日志记录选项。
560

被折叠的 条评论
为什么被折叠?



