Laravel 中保存 SQL 執行的操作

. . . .
.

img

Photo by Luca Bravo on Unsplash

想要查看弱點檢測程式都執行哪些的測試,所以把執行的操作都紀錄起來。

在 AppServiceProvider 的 boot 中加入下面程式

\DB::listen(function ($query) {
    $tmp = str_replace('?', '"'.'%s'.'"', $query->sql);
    $qBindings = [];
    foreach ($query->bindings as $key => $value) {
        if (is_numeric($key)) {
            $qBindings[] = $value;
        } else {
            $tmp = str_replace(':'.$key, '"'.$value.'"', $tmp);
        }
    }
    $tmp = vsprintf($tmp, $qBindings);
    $tmp = str_replace("\\", "", $tmp);
    \Log::info(' execution time: '.$query->time.'ms; '.$tmp."\n\t");
});

Source: Laravel 中输出 SQL 语句的到 log 日志



Tags: Web design