1. ホーム
  2. php

[解決済み] クエリビルダーのSQLクエリを文字列として出力するにはどうすればよいですか?

2022-03-14 08:39:50

質問

次のようなコードがあるとする。

DB::table('users')->get();

上記のデータベースクエリビルダーが生成する生のSQLクエリ文字列を取得したいのです。この例では、次のようになります。 SELECT * FROM users .

どうすればいいのでしょうか?

どのように解決するのですか?

最後に実行されたクエリを画面に出力するには、次のようにします。

DB::enableQueryLog(); // Enable query log

// Your Eloquent query executed by using get()

dd(DB::getQueryLog()); // Show results of log

最新のクエリは配列の一番下になると思います。

というようなものが出てきます。

array(1) {
  [0]=>
  array(3) {
    ["query"]=>
    string(21) "select * from "users""
    ["bindings"]=>
    array(0) {
    }
    ["time"]=>
    string(4) "0.92"
  }
}

(ありがとうございます ジョシュアさんの のコメントです)