作者 lyh

gx

@@ -64,7 +64,7 @@ class MonthCount extends Command @@ -64,7 +64,7 @@ class MonthCount extends Command
64 } 64 }
65 ProjectServer::useProject($v['id']); 65 ProjectServer::useProject($v['id']);
66 echo date('Y-m-d H:i:s') . '项目id:'.$v['id'] . PHP_EOL; 66 echo date('Y-m-d H:i:s') . '项目id:'.$v['id'] . PHP_EOL;
67 -// $this->count($v['id'], $url); 67 + $this->count($v['id'], $url);
68 DB::disconnect('custom_mysql'); 68 DB::disconnect('custom_mysql');
69 } 69 }
70 } 70 }
@@ -33,20 +33,35 @@ class QueryListener @@ -33,20 +33,35 @@ class QueryListener
33 public function handle(QueryExecuted $event) 33 public function handle(QueryExecuted $event)
34 { 34 {
35 try{ 35 try{
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\''); 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;
41 } else { 50 } else {
42 - if (is_string($binding)) {  
43 - $event->bindings[$i] = "$binding";  
44 - } 51 + // 其他类型的参数处理
  52 + $event->bindings[$i] = (string) $binding;
45 } 53 }
46 } 54 }
  55 + }
  56 + // 检查占位符和绑定参数数量是否匹配
  57 + $placeholders = substr_count($sql, '%s');
  58 + if ($placeholders == count($event->bindings)) {
  59 + // 构建日志信息
47 $log = vsprintf($sql, $event->bindings); 60 $log = vsprintf($sql, $event->bindings);
48 - $log = $log.' [ RunTime:'.$event->time.'ms ] '; 61 + $log = $log . ' [ RunTime:' . $event->time . 'ms ] ';
49 Log::debug($log); 62 Log::debug($log);
  63 + } else {
  64 + Log::error("Number of placeholders ($placeholders) does not match number of bindings (" . count($event->bindings) . ") for SQL: $sql");
50 } 65 }
51 //监听api_no是TM咋个被改的 66 //监听api_no是TM咋个被改的
52 if (Str::contains($event->sql, 'update') && Str::contains($event->sql, '`api_no` =')) { 67 if (Str::contains($event->sql, 'update') && Str::contains($event->sql, '`api_no` =')) {