|
...
|
...
|
@@ -33,35 +33,25 @@ class QueryListener |
|
|
|
public function handle(QueryExecuted $event)
|
|
|
|
{
|
|
|
|
try{
|
|
|
|
// 将 SQL 中的占位符 '?' 替换为 '%s'
|
|
|
|
if (env('APP_DEBUG') == true) {
|
|
|
|
$sql = str_replace("?", "'%s'", $event->sql);
|
|
|
|
// 将绑定参数进行处理
|
|
|
|
foreach ($event->bindings as $i => $binding) {
|
|
|
|
if ($binding instanceof \DateTime) {
|
|
|
|
// 格式化 DateTime 类型的参数
|
|
|
|
$event->bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
|
|
|
|
} else {
|
|
|
|
if (is_string($binding)) {
|
|
|
|
// 确保字符串参数以引号括起来
|
|
|
|
$event->bindings[$i] = "'$binding'";
|
|
|
|
} elseif (is_numeric($binding)) {
|
|
|
|
// 确保数值参数的正确性
|
|
|
|
$event->bindings[$i] = $binding;
|
|
|
|
} else {
|
|
|
|
// 其他类型的参数处理
|
|
|
|
$event->bindings[$i] = (string) $binding;
|
|
|
|
$event->bindings[$i] = "$binding";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 检查占位符和绑定参数数量是否匹配
|
|
|
|
$placeholders = substr_count($sql, '%s');
|
|
|
|
if ($placeholders == count($event->bindings)) {
|
|
|
|
// 构建日志信息
|
|
|
|
if(strpos($sql,'%Y-%m') === false){
|
|
|
|
$log = vsprintf($sql, $event->bindings);
|
|
|
|
$log = $log . ' [ RunTime:' . $event->time . 'ms ] ';
|
|
|
|
}else{
|
|
|
|
$log = $sql;
|
|
|
|
}
|
|
|
|
|
|
|
|
$log = $log.' [ RunTime:'.$event->time.'ms ] ';
|
|
|
|
Log::debug($log);
|
|
|
|
} else {
|
|
|
|
Log::error("Number of placeholders ($placeholders) does not match number of bindings (" . count($event->bindings) . ") for SQL: $sql");
|
|
|
|
}
|
|
|
|
//监听api_no是TM咋个被改的
|
|
|
|
if (Str::contains($event->sql, 'update') && Str::contains($event->sql, '`api_no` =')) {
|
...
|
...
|
|