プログラミング 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


関連記事

Laravelのヘルパー関数とは?

Laravel includes a variety of global “helper” PHP functions. Many of these functions are …

【SpringBoot入門】#3~ Index画面の作成

このチュートリアルでは、簡易な書籍管理システムを作っていきます。 まず最初にIndex画面を作成していきます。 HTML作成 以下の配下にindex.htmlを作成します。 配置先:プロジェクト(ここ …

【Java入門】メソッドとは?使い方まとめ

概要 メソッドとは何か? また使い方をわかり易く説明します。   メソッドとは? 固く言うと、一連の処理を一つにまとめたものです。 平たく言うと、何らかの処理を1つにまとめたものです。 例 Syste …

【Node.js】Excel⇔JSON変換する方法

やること 1.ExcelファイルをJSONで取得。 2.JSONの編集後、新しいExcelファイルに出力する。 環境 Node.js ・インストール  https://nodejs.org/ja/   …

【Javaポートフォリオ】なぜスクレイピングツールがおすすめか?

なぜスクレイピングツールか? ・スキルに需要がある ・総合的なスキルが身に付く ・個人開発に応用できる スキルに需要がある 執筆時点(2021年3月28日)時点で、ランサーズに1643件の発注がありま …

SpringFramworkの良書

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

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