クエリデバッグする方法

Zend Frameworkでデータベースのクエリの実行時間などを調べるには、Zend_DBのgetProfilerメソッドを使います。

これにより実行されたSQL文や所要時間を知ることができます。

プロファイラの呼び方

$db->getProfiler()

全体の所要時間

$db->getProfiler()->getTotalElapsedSecs()

クエリ型を絞り込む

SELECTのみ

$db->getProfiler()->getQueryProfiles(Zend_Db_Profiler::SELECT)

INSERTのみ

$db->getProfiler()->getQueryProfiles(Zend_Db_Profiler::INSERT)

UPDATEのみ

$db->getProfiler()->getQueryProfiles(Zend_Db_Profiler::UPDATE)

DELETEのみ

$db->getProfiler()->getQueryProfiles(Zend_Db_Profiler::DELETE)

INSERTとUPDATEのみ

$db->getProfiler()->getQueryProfiles(Zend_Db_Profiler::UPDATE | Zend_Db_Profiler::UPDATE)

各クエリの情報を得る

$db->getProfiler()->getQueryProfiles()

とすると配列で各クエリの情報が返ります。

foreach ($db->getProfiler()->getQueryProfiles() as $query) {
    // 実行クエリ
    echo $query->getQuery();
    // クエリパラメタ
    print_r($query->getQueryParams());
    // クエリ所要時間
    echo $query->getElapsedSecs();
}

関連記事

スポンサーリンク

auでインラインFLASH

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る