Gibt es eine Möglichkeit, eine vorbereitete Abfrage, um zu sehen, wie es auf der Datenbank ausgeführt werden? [Duplikat]

StackOverflow https://stackoverflow.com/questions/305179

  •  08-07-2019
  •  | 
  •  

Frage

  

Mögliche Duplizieren:
   PDO Prepared Statements

Ich bin mit der mysqli-Erweiterung in PHP und ich frage mich, ist es vielleicht eine Möglichkeit, eine vorbereitete Abfrage, um zu sehen, wie es auf dem Server ausgeführt werden, beispielsweise Die Abfrage ist so etwas wie diese

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

, aber ich möchte die Abfrage sehen, nachdem die Werte in gefüllt sind, wie folgt:

select * from table1 where id = 20 and name = "John"
War es hilfreich?

Lösung

Duplizieren von Prepared Statements PDO

Kurze Antwort: nein. Eine vorbereitete Abfrage wird nie auf die Abfrage umgewandelt werden Sie erwarten. Es wird direkt vom Datenbankserver ausgeführt wird. Sie können MySQL-Query-Log oder PDO ist nicht dokumentierte Funktion debugDumpParams, aber beide sind nur Annäherungen verwenden.

Andere Tipps

Aktivieren Sie mysql query Protokollierung und es wird log alle Abfragen in einer Textdatei für Sie zu überprüfen.

Sehen Sie es wo? Wenn es Ihr Code ist die Abfrage haben und Sie die vorbereiteten Parameter haben, melden sie einzeln oder in der ursprünglichen Abfrage-String ersetzen. Wenn die Bindung erhalten Sie einen Fehler erhalten fehlschlagen, andernfalls sollten Sie die gleichen Werte erwarten „gefüllt“ werden in, wie Sie sie angegeben.

Es ist die Art und Weise die meisten der Zeit ich mysql dert bin Debuggen:

$ q = "select * from table1 where id =" $ id "und name =" $ name...; echo $ q;

erzeugt die Ausgabe alle Variablen der Abfrage zugeordnet.

Hope verstand ich Ihnen genau, was Sie wollten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top