Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann in PHP mit PDO die endgültige parametrisierte SQL-Abfrage überprüft werden?

Also denke ich, dass ich endlich meine eigene Frage beantworten werde, um eine vollständige Lösung für das Protokoll zu haben. Aber ich muss Ben James und Kailash Badu danken, die die Hinweise dafür geliefert haben.

Kurze Antwort
Wie von Ben James erwähnt:NEIN .
Die vollständige SQL-Abfrage existiert auf der PHP-Seite nicht, da die Abfrage-mit-Tokens und die Parameter separat an die Datenbank gesendet werden. Nur auf der Datenbankseite existiert die vollständige Abfrage.

Selbst der Versuch, eine Funktion zum Ersetzen von Token auf der PHP-Seite zu erstellen, würde nicht garantieren, dass der Ersetzungsprozess derselbe ist wie der SQL-Prozess (knifflige Dinge wie Token-Typ, bindValue vs. bindParam, ...)

Problemumgehung
Hier gehe ich näher auf die Antwort von Kailash Badu ein. Indem wir alle SQL-Abfragen protokollieren, können wir sehen, was wirklich auf dem Server ausgeführt wird. Mit mySQL kann dies durch Aktualisieren der my.cnf (oder my.ini in mein Fall mit Wamp-Server) und das Hinzufügen einer Zeile wie:

log=[REPLACE_BY_PATH]/[REPLACE_BY_FILE_NAME]

Lassen Sie dies einfach nicht in der Produktion laufen!!!