作者 lyh

gx

... ... @@ -64,7 +64,7 @@ class MonthCount extends Command
}
ProjectServer::useProject($v['id']);
echo date('Y-m-d H:i:s') . '项目id:'.$v['id'] . PHP_EOL;
// $this->count($v['id'], $url);
$this->count($v['id'], $url);
DB::disconnect('custom_mysql');
}
}
... ...
... ... @@ -33,20 +33,35 @@ class QueryListener
public function handle(QueryExecuted $event)
{
try{
if (env('APP_DEBUG') == true) {
// 将 SQL 中的占位符 '?' 替换为 '%s'
$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";
// 确保字符串参数以引号括起来
$event->bindings[$i] = "'$binding'";
} elseif (is_numeric($binding)) {
// 确保数值参数的正确性
$event->bindings[$i] = $binding;
} else {
// 其他类型的参数处理
$event->bindings[$i] = (string) $binding;
}
}
}
// 检查占位符和绑定参数数量是否匹配
$placeholders = substr_count($sql, '%s');
if ($placeholders == count($event->bindings)) {
// 构建日志信息
$log = vsprintf($sql, $event->bindings);
$log = $log.' [ RunTime:'.$event->time.'ms ] ';
$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` =')) {
... ...