PHP

【Laravel】実行したSQL文をデバック用に表示する方法【DB::enableQueryLog()】

入力フォームのバリデーションチェックを行うControllerの記述

use宣言

use DBを宣言します。

use DB;

DB::enableQueryLog()を使ってSQL実行結果を出力

※SQLクエリ前に「DB::enableQueryLog()」を記述。SQLクエリ実行後に「$queryResult = DB::getQueryLog()」を記述し、クエリ結果「戻り値:$queryResult」を出力「print_r($queryResult)」します。

DB::enableQueryLog();

$sql = DB::select("SELECT * FROM products, users WHERE …");

$queryResult = DB::getQueryLog();
print_r($queryResult);

toSqlを使ってSQL実行結果を出力

※SQLクエリ実行後に「$sql->toSql()」を記述し、クエリ結果を出力「print_r($sql->toSql())」しても出来る様です。

$sql = DB::select("SELECT * FROM products, users WHERE …");

print_r($sql->toSql());

 
※「toSql()」が使えないクエリ(sql文)もあったので、私は「enableQueryLog()」をよく使います。

 
※流用される場合は自己責任でお願いします。