Open
Description
$query->bindings[$i] = "'$binding'";
不要直接修改$query->bindings
.
改为如下会好点:
$dispatcher->listen(QueryExecuted::class, function (QueryExecuted $query) {
$sql = trim($query->sql);
if (strtolower($sql) === 'select 1') {
return;
}
$sql = str_replace("?", "%s", $sql);
$bindings = $query->bindings; // <<<<<<<<<<<<<<<<<<<<<<<<<<
foreach ($bindings as $i => $binding) {
if ($binding instanceof \DateTime) {
$bindings[$i] = $binding->format("'Y-m-d H:i:s'");
} else {
if (is_string($binding)) {
$bindings[$i] = "'$binding'";
}
}
}
$log = $sql;
try {
$log = vsprintf($sql, $bindings);
} catch (\Throwable $e) {}
Context::get()->webmanLogs = (Context::get()->webmanLogs ?? '') . "[SQL]\t[connection:{$query->connectionName}] $log [{$query->time} ms]" . PHP_EOL;
});
Metadata
Assignees
Labels
No labels
Activity