湛蓝之海 发表于 2021-11-8 12:52:28

Laravel监听数据库访问,打印SQL的例子

今天小编就为大家分享一篇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;
      $i++;
      return gettype($item) == 'string' ? "'$item'" : $item;
      }, $sql->sql);
      echo $rawSql, "\n<br /><br />\n";
    });
}
}
在需要开始监听数据库访问的位置添加代码


DB::connection()->enableQueryLog(); // 打开query log
sql_dump();
sql语句会被打印到标准输出。
以上这篇Laravel监听数据库访问,打印SQL的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持CodeAE代码之家。
原文链接:https://blog.csdn.net/u010205879/article/details/50848597

http://www.zzvips.com/article/191525.html
页: [1]
查看完整版本: Laravel监听数据库访问,打印SQL的例子