カスタムデータベースクエリのデバッグ


8

特定のデータベースオブジェクトにクエリの印刷を依頼する便利な方法はありますか?

私は時々、モジュールにDBTNG db_op()を記述しますが、クエリを正しく行うことができません。

develがクエリログを出力できることは知っていますが、これはすべてのクエリであり、この種の状況では、多くの場合問題になります。

私はやってみたいです

$result = db_select('node', 'n')->fields('n')->execute();
dpm($result->queryWithParameters);
dpm($result->finalQuery);

回答:


13

ありdpq()、この必要性を満たすように思わdevelのモジュール内の関数が。

DBTNG QueryオブジェクトからSQL文字列を出力します。引用された引数を含みます。


5
できれば+100をあげますが、その機能をこれまでに見たことがない
クライヴ

3
あなたが賞金を提供したならば、あなたは持っていただろう。;)
kiamlaluno

2

私はこれが古い質問であることを知っていますが、うまくいけば、この回答が他の人に役立つかもしれません。基本的に、Drupalコアには独自のDatabaseLogクラスがあります。Develモジュールが利用できない場合に使用できます(遅いクエリの本番デバッグなど):

Database::startLog('my_custom_key');
// do some SQL operations here...
// print the queries
print_r(Database::getLog('my_custom_key'));
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.