2010-02-11 11 views
43

Gibt es eine Möglichkeit, die Abfrage abzurufen, die zum Generieren eines PDO Prepared-Anweisungsobjekts verwendet wurde?Abfragebefehl von PDO abrufen vorbereitete Anweisung

+0

Mögliches Duplikat von [Abrufen von RAW-SQL-Abfragezeichenfolgen aus vorbereiteten PDO-Anweisungen] (http://stackoverflow.com/questions/210564/getting-raw-sql-query-string-from-pdo-prepared-statements) – FFirmenich

Antwort

31

Versuchen Sie $statement->queryString.

+0

Bingo : http://www.php.net/manual/en/class.pdostatement.php#92046 – Strae

+38

Immer wenn ich dies verwende, zeigt es immer noch die Params als Platzhalter. Gibt es denn eh die Saite mit den eingestellten Params? Wie die DB es bekommt? –

+3

Sie müssten Ihre Datenbankprotokolle überprüfen. Für MySQL, überprüfen Sie diese Seite: http://dev.mysql.com/doc/refman/5.0/en/query-log.html – Arkh

9

Wenn Sie nicht dagegen sind die Standard \ PDO und \ PDOStatement Objekt erstreckt, könnten Sie sich bei:

github.com/noahheck/E_PDOStatement

Diese Erweiterung auf PDO können Sie eine vollständige Abfrage-Anweisung als ein sehen Beispiel, was auf Datenbankebene ausgeführt werden könnte. Es verwendet Regex, um die gebundenen Parameter Ihrer PDO-Anweisung zu interpolieren.

Durch die Erweiterung der default \ PDOStatement-Definition kann E_PDOStatement diese Erweiterung der Standardfunktionalität anbieten, ohne dass Änderungen an Ihrem normalen Arbeitsablauf erforderlich sind.

Haftungsausschluss: Ich habe diese Erweiterung erstellt.

Ich hoffe nur, es ist hilfreich für jemand anderen.

0

Eigenwerbung: Sie können die erwartete Abfrage mit der Debug-Methode ausgeben. Ich habe es kürzlich aktualisiert.