php Laravel输出所有数据库执行SQL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php Laravel输出所有数据库执行SQL相关的知识,希望对你有一定的参考价值。

<?php

namespace App\Providers;

use App\Utils\BLogger;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        DB::listen(function ($query) {
            $sql = $query->sql;
            foreach ($query->bindings as $replace){
                $value = is_numeric($replace) ? $replace : "'".$replace."'";
                $sql = preg_replace('/\?/', $value, $sql, 1);
            }
            BLogger::getLogger(BLogger::LOG_SQL)->info(json_encode([
                'sql' => $sql,
                'bindings' => $query->bindings,
                'time' => $query->time,
            ]));
        });
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

以上是关于php Laravel输出所有数据库执行SQL的主要内容,如果未能解决你的问题,请参考以下文章

laravel查看执行sql的

laravel 输出sql

laravel如何输出最后一条执行的SQL

PHP安全三板斧:过滤篇Laravel底层SQL注入规避

PHP Laravel迁移SQL问题[重复]

使用laravel从sql server生成UUID数据类型(uniqueidentifier)失败