Laravel监听数据库访问、打印SQL

增加一个helper函数

if ( ! function_exists('sql_dump')) {
    function sql_dump()
    {   
        \DB::listen(function ($sql) {
            $i = 0;
            $bindings = $sql->bindings;
            $rawSql = preg_replace_callback('/\?/', function ($matches) use ($bindings, &$i) {
                $item = isset($bindings[$i]) ? $bindings[$i] : $matches[0];
                $i++;
                return gettype($item) == 'string' ? "'$item'" : $item;
            }, $sql->sql);
            echo $rawSql, "\n<br /><br />\n";
        }); 
    }   
}

在需要开始监听数据库访问的位置添加代码

DB::connection()->enableQueryLog(); // 打开query log
sql_dump();

sql语句会被打印到标准输出。

发布了52 篇原创文章 · 获赞 12 · 访问量 11万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览