5

重複の可能性:
PDO プリペアド ステートメント

PHP で mysqli 拡張機能を使用していますが、サーバー上で実行されるように準備されたクエリを確認する方法はあるのでしょうか。たとえば、クエリは次のようなものです。

select * from table1 where id = ? and name = ?

しかし、次のように、値が入力された後にクエリを表示したい:

select * from table1 where id = 20 and name = "John"
4

4 に答える 4

7

mysqlクエリ ログを有効にすると、すべてのクエリがテキスト ファイルに記録され、確認できるようになります。

于 2008-11-20T14:30:56.350 に答える
2

PDO プリペアド ステートメントの重複

短い答え:いいえ。準備されたクエリは、予期したクエリに変換されることはありません。データベースサーバーによって直接実行されます。mysql のクエリ ログまたは PDO の文書化されていない関数を使用できますdebugDumpParamsが、どちらも概算です。

于 2008-11-20T15:10:42.040 に答える
0

どこで見ますか?クエリがあり、準備されたパラメーターがあるコードの場合は、それらを個別にログに記録するか、元のクエリ文字列に置き換えます。バインディングが失敗した場合はエラーが発生します。それ以外の場合は、指定した値と同じ値が「入力」されることを期待する必要があります。

于 2008-11-20T13:00:51.053 に答える
0

それは、私がmysqlのクワイアをデバッグしているほとんどの場合の方法です:

$q = "select * from table1 where id = ".$id." and name = ".$name; エコー $q;

出力は、クエリに割り当てられたすべての変数を生成します。

あなたが何を望んでいるのか、私があなたを正確に理解したことを願っています。

于 2008-11-20T15:16:45.117 に答える