52
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【CakePHP】実行されたSQLの確認

Last updated at Posted at 2015-04-13

##エレメントのsql_dumpを使う方法

Layout/default.ctpのデフォルト版に書いているやつ。

echo $this->element('sql_dump');

##DataSourceを使う方法

リダイレクトで遷移してしまう場合や、エレメントのsql_dumpを削除してしまっている場合はこちらを使う。

モデルからDataSourceを取得して、getLog()とすると実行されたSQLやそれに付随する情報が取得できる。

$モデル->getDataSource()->getLog();

ちなみに、自分の環境では、sqlを確認するためにデバッグ用でAppModelに以下を定義している。これでモデルからもコントローラーからも簡単にsqlが確認できる。

public function sql(){
  $sql = $this->getDataSource()->getLog();
  
  $this->log($sql);
  return $sql;
}

ログで確認したい場合は、

$モデル->sql();

画面に出して確認したい場合は、

debug($モデル->sql());

と使う。

エレメントのsql_dumpやdebugkitだと、SQLが全て出て該当のSQLを探すのが面倒だけど、確認したいfind()やsave()のすぐ下に上記を書くと、最後のSQLを見るだけなので便利。

52
56
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?