web-dev-qa-db-ja.com

実行中のクエリを確認するにはどうすればよいですか?

私はhook_views_query_alter()を使用していて、変更に基づいて実行されているクエリをどこかに(画面、エラーログなど)印刷したいのですが。私はdpm($ query)を試しましたが、それによって完全なクルモツリーが得られます-必要なのはクエリだけです-つまり、「select x、y from z where a = 2」です。可能?

5
EmmyS

_views_plugin_query_default_ クラスには query() 現在オブジェクトに保持されているパラメーターを受け取り、標準 SelectQuery を提供するメソッド(もちろん実行されません) 。

SelectQueryクラスはマジック __toString() メソッドを実装しているため、これを文字列に直接キャストできます。 SQLクエリ自体:

_$select_query = $query->query();
$query_string = (string)$select_query;
dpm($query_string);
_
13
Clive