André Laugks: PDO: SQL-Statments debuggen

Hallo!

Ich würde mir gern die SQL-Statments debuggen lassen, die prepare() zusammen setzt.

  
    $this->id = 1;  
    $sql = "SELECT * FROM WHERE id = :id";  
    $rs = $pdo->prepare($sql, array(PDO::FETCH_ASSOC));  
    $rs->execute(array('id' = $this->id));  

Ich möchte mir also folgendes Augeben lassen:

  
     SELECT * FROM WHERE id = 1  

Ich kann in er Doku keinen Möglichkeit dafür finden...

André Laugks

--
Die Frau geht, die Hilti bleibt!
  1. echo $begrüßung;

    Ich würde mir gern die SQL-Statments debuggen lassen, die prepare() zusammen setzt.

    prepare() bzw. execute() setzt die Query nur dann mit den Parameteren zusammen, wenn die zugrunde liegende Datenbankschnittstelle Prepared Statements nicht selbst unterstützt. Ansonsten werden Query und Parameter auf getrenntem Weg und zu unterschiedlichen Zeiten zur Datenbank übertragen. Auch dort werden die Parameter nicht erst in die Query eingetragen um dann geparst zu werden, vielmehr wird beim prepare() die Query einmalig geparst und beim execute() mit den dann jeweils übergebenen Parametern ausgeführt.

    Als Versuch könntest du einen Syntaxfehler in die Query einbauen (beim SELECT verschreiben). Vermutlich bekommst du dann schon (z.B. bei mysqli) beim prepare() eine Fehlermeldung, ansonsten (bei sqlite) erst beim execute().

    echo "$verabschiedung $name";