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.交流群: 2702237 13835667

相關課文
  • mac開發接入微信公衆號接口返回報錯 cURL error 56: SSLRead() return error -9806

  • PHP的換行符是什麽

  • pecl安裝程序時報錯Array and string offset access syntax with curly braces is no longer supported

  • 由於商家傳入的H5交易參數有誤,該筆交易暫時無法完成,請聯繫商家解決

我要說說
網上賓友點評