sql >> データベース >  >> RDS >> Mysql

PDOを使用するPHPで、最終的なSQLパラメーター化クエリを確認するにはどうすればよいですか?

    ですから、記録のための完全な解決策を得るために、私は最終的に自分の質問に答えると思います。しかし、これの手がかりを提供してくれたベン・ジェームスとカイラッシュ・バドゥに感謝しなければなりません。

    簡単な回答
    ベン・ジェームズが述べたように:いいえ
    完全なSQLクエリはPHP側には存在しません。これは、トークン付きクエリとパラメータが別々にデータベースに送信されるためです。完全なクエリはデータベース側にのみ存在します。

    PHP側でトークンを置換する関数を作成しようとしても、置換プロセスがSQLのプロセスと同じであるとは限りません(token-type、bindValue、bindParamなどのトリッキーなもの)

    回避策
    ここで、Kailash Baduの回答について詳しく説明します。すべてのSQLクエリをログに記録することで、サーバーで実際に実行されているものを確認できます。mySQLを使用すると、my.cnf(またはWampサーバーの場合)、次のような行を追加します:

    log=[REPLACE_BY_PATH]/[REPLACE_BY_FILE_NAME]
    

    これを本番環境で実行しないでください!!!



    1. SQLiteの日付と時刻の関数

    2. 「無効なオブジェクト名「OPENJSON」」の修正方法。 SQLServerで

    3. Androidのバックアップ後にSqliteデータベースを復元する方法

    4. MySQL、1つのクエリで複数のテーブルを更新