Laravel5のDBファサード・Eloquent ORMで実行したSQL文を出力する方法

シェアする

LaravelでEloquentを使用してクエリを発行する際に、実際に流されるSQLを確認したい時があると思います。

SQLを表示する方法(toSql()メソッドを使用する)

実際に流されるSQLを表示する方法は2通りあるのですが、まずその一つの方法を紹介します。

上記のような処理をする場合、下記のようにtoSql()メソッドとgetBindings()メソッドを使うことで、流されるSQLを表示させることができます。

こうすると、SQLの値とバインドされる値のの内容が画面上に表示され、どのようなSQLを流していることを確認することができます。

toSql()メソッドは、バインドをされていないSQLの出力を返し、getBindings()はバインドされた値を返します。

バインド変数、実行時間、SQLを確認する

DBオブジェクトを利用すると方法もあります。クエリ発行の前に、DB::enableQueryLog() を実行しておいて、クエリ発行後に DB::getQueryLog() することで詳細が確認できます。

どのようなSQL文が実行されているか確認するのは、必要になる情報だと思うので、覚えておくと良いかもしれません。