[解決済み] PHP with PDOで、最終的なSQLのパラメトリッククエリを確認する方法は?[重複している]。
2022-04-30 20:21:34
質問内容
PHP で、PDO を使ってパラメータ付きのクエリで MySQL データベースにアクセスする場合、 (すべてのトークンを置き換えた後の) 最終的なクエリをどのようにチェックすればよいのでしょうか?
データベースで実際に実行される内容を確認する方法はありますか?
どのように解決するのですか?
ということで、最後に自分の質問に答えて、完全な解答を記録しておこうと思います。でも、このヒントを提供してくれたBen JamesとKailash Baduに感謝しなければならない。
短い回答
ベン・ジェームスさんのおっしゃるとおりです。
NO
.
なぜなら、query-with-tokens とパラメータは別々にデータベースに送信されるからです。
データベース側でのみ、完全なクエリが存在します。
トークンを置き換える関数を PHP 側で作ろうとしても、置き換え処理が SQL と同じになるとは限りません (token-type や bindValue と bindParam の違いなど、厄介なものがあります。) 。
回避策
ここで、Kailash Badu氏の回答について詳しく説明します。
すべてのSQLクエリをログに記録することで、サーバー上で実際に何が実行されているかを確認することができます。
mySQLでは、my.cnf(Wampサーバーの場合はmy.ini)を更新して、次のような行を追加することで実現できます。
log=[REPLACE_BY_PATH]/[REPLACE_BY_FILE_NAME]
ただ、これを本番で走らせるのはやめてください!!!
関連
-
[解決済み】++と*+の意味は何ですか?
-
[解決済み] [Solved] Fatal error: 非オブジェクトのメンバ関数fetch_assoc()の呼び出し [重複]。
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] PHPでパスワードをハッシュ化するためにbcryptを使用するにはどうすればよいですか?
-
[解決済み] MySQLデータベースのテーブルのサイズを取得する方法は?
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Fatal error: 未定義の関数 sqlsrv_connect() を呼び出した。
-
[解決済み】空の配列要素を削除する
-
[解決済み】「Fatal error: Class 'MySQLi' not found "を解決するには?
-
[解決済み】PHPからPythonスクリプトを実行する
-
[解決済み] 入力ファイルが指定されていない
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み] クエリビルダーのSQLクエリを文字列として出力するにはどうすればよいですか?
-
[解決済み] MySQLで最後に実行されたクエリを表示する方法は?
-
[解決済み] Doctrine - 準備されたステートメントだけでなく、実際のSQLをプリントアウトするには?
-
[解決済み] PDO のプリペアドステートメントから生の SQL クエリ文字列を取得する