PHP

Laravel 5.2 如何输出SQL语句

字号+ 编辑: 种花家 修订: 种花家 来源: 简书 2023-09-22 我要说两句(0)

网上介绍用Laravel调试SQL使用debugbar,那我如果就不用debugbar要用自己编写代码实现打印SQL语句呢?

一般都是推荐用debugbar的,安装完了之后点画面左下角的小方块,找到queries栏,就看到SQL语句了,但这里我不讲这种傻瓜式工具,说点有技术含量的:

laravel输出sql语句不是很简单,需要自己写一些代码来实现这个功能。

把下面的代码放到 app/Providers/AppServiceProvider.php中的boot方法里 :

DB::listen(function ($sql) {
    foreach ($sql->bindings as $i => $binding) {
        if ($binding instanceof \DateTime) {
            $sql->bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
        } else {
            if (is_string($binding)) {
                $sql->bindings[$i] = "'$binding'";
            }
        }
    }
    $query = str_replace(array('%', '?'), array('%%', '%s'), $sql->sql);
    $query = vsprintf($query, $sql->bindings); var_dump($query);
});

网上很多监听的代码都是错的,laravel 5.2只传了一个参数进来,不是网上的3个。

现在我们可以在本地开发的时候进行sql的记录,便于调试程序。也可以不输出写入文件。

阅完此文,您的感想如何?
  • 有用

    0

  • 没用

    0

  • 开心

    0

  • 愤怒

    0

  • 可怜

    0

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.交流群: PHP+JS聊天群

相关课文
  • mac开发接入微信公众号接口返回报错 cURL error 56: SSLRead() return error -9806

  • pecl安装程序时报错Array and string offset access syntax with curly braces is no longer supported

  • PHP的换行符是什么

  • 由于商家传入的H5交易参数有误,该笔交易暂时无法完成,请联系商家解决

我要说说
网上宾友点评