Laravel 查看SQL操作记录

发布时间:2019-11-26作者:小灵龙点击:190

方法一:临时打印操作记录

DB::connection()->enableQueryLog();   # 开启执行的日志
执行的sql语句    # 这里是用laravel模型查询的语句
var_dump(DB::getQueryLog());   # 打印模型查询执行的sql语句

方法二:输出SQL信息到日志文件
打开项目文件app/Providers/AppServiceProvider.php

     /**
     * 引导服务。
     *
     * @return void
     */


在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\n\t");

            }
        );

保存,再次执行SQL操作,SQL操作就会记录到Laravel的日志中,日志目录位于storage/logs。一般是laravel-2019-12-12.log

 
 

标签:sql