PHP プログラミング

【Laravel】SQLの確認はenableQueryLogを使う

投稿日:2019年8月29日 更新日:

SQLのデバッグのために、SQLとバインドされた値を確認したいことがあります。
その時に使える方法として、よく提示されるのは以下の2つです。

1.enableQueryLogメソッドとgetQueryLogメソッドを使う
クラス:Illuminate\Database\Connection
出力タイミング:クエリ実行後

2.toSqlメソッドとgetBindingsメソッドを使う
クラス:Illuminate\Database\Query\Bulder
出力タイミング:クエリ実行前

実行したSQLを見たいのであれば、
enableQueryLogメソッドとgetQueryLogメソッドの方が使いやすいと思います

toSqlメソッドとgetBindingsメソッドの場合、クエリ実行前でないといけません。
また、Modelのメソッドが以下のように書いてあると、ちょっとした書き直しが必要になったりと少々面倒なのです。

 

enableQueryLogメソッドとgetQueryLogメソッドの場合

実行前後に挟むだけでOKなので、デバッグし易いといえます。

出力画面


ちなみに、処理時間がミリ秒で表示されます。

 

toSqlメソッドとgetBindingsメソッドの場合

今回掲載したModelのメソッドの場合、
returnをさせずに、実行前にクエリを出力するよう修正するのでちょっと手間です。

出力画面


こちらはクエリ実行前なので処理時間は取得できません。
ただし、クエリ実行前に出力させたいということがあれば、こちらを使うしかありません。

 

まとめ

・enableQueryLogメソッドとgetQueryLogメソッドはクエリ実行前後に挟んで使えて便利。
 また、処理時間も表示できる。
・toSqlメソッドとgetBindingsメソッドはクエリ実行前である必要があれば使用する。

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-PHP, プログラミング
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

【Bootstrap】一覧表示をデザインしよう!

概要 一覧表示をデザインします。 Bootstrapにはすぐに使える便利なクラスが用意されているので、それらを使用して実現します。 【SpringBootチュートリアル】#7~ 検索画面の作成に変更を …

困った,男性

あなたが読み難いコードを書いてしまう理由

はじめに 読みやすいコードを書きたい人と願う方のために執筆しました。 誰もが良いコードを書きたいと願っているはずだからです。(と私は信じています) というもの、後で自分が読み直した時、誰かにレビューを …

【Spring+Thymeleaf】HTMLの更新をビルドせずに反映させる方法

概要 Spring + Thymeleafの構成において、ビルド無しでHTMLの変更を反映する方法です。 前提 以下の構成で確認したものになります。 ・SpringBoot 2.6.4 ・Thymel …

no image

How to apply JavaScript fixes (PHP)

※This article (Japanese) is translated from Google (English). After editing JavaScript, it is the ac …

junit, テスト, junit5

【Junit5】アノテーションの意味をざっくりと解説

Junit5のアノテーションについてざっくりと理解するための記事です。 なんか見たことあるけど、要するに何に使うやつなんだっけ? を軽く思い出すためにあります。 テストを実行 @Test テストメソッ …

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。