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交易參數有誤,該筆交易暫時無法完成,請聯繫商家解決

我要說說
網上賓友點評