ホームページ >データベース >mysql チュートリアル >Doctrine でプリペアド ステートメントが使用されている場合、「実際の」 SQL クエリを確認するにはどうすればよいですか?

Doctrine でプリペアド ステートメントが使用されている場合、「実際の」 SQL クエリを確認するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-31 03:49:301089ブラウズ

How Can I See the

Doctrine を使用した隠し SQL の探索: プリペアド ステートメントの秘密を明らかにする

Doctrine を使用して次のようなクエリを綿密に作成したとします。

$q = Doctrine_Query::create()->select('id')->from('MyTable');

次に、次のような条件を使用してクエリを微調整するとき、

$q->where('normalisedname = ? OR name = ?', array($string, $originalString));

実行前に生の SQL を調べたいと思います。そこで、次のように呼び出します。

$q->getSQLQuery();

しかし、残念ながら、これは期待したものではなく、疑問符が付いている準備されたステートメントです。データベースに何が送信されるかを確認したいとします。

これが真実です: Doctrine は「実際の」SQL をデータベース サーバーに送信しません。これは、準備されたステートメントを使用する 3 段階のプロセスです:

  • 準備のために準備されたステートメントを送信する
  • パラメーターを個別に渡す
  • 準備されたステートメントを実行する

これは、PHP 側に「実際の」SQL クエリが存在しないことを意味します。そのため、Doctrine はそれを表示できません。

以上がDoctrine でプリペアド ステートメントが使用されている場合、「実際の」 SQL クエリを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。