作者 lyh

gx

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