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

PDO - Abfrage ohne Ergebnisse

Das Problem dabei ist, dass Sie Parameter mit bindParam binden , die die Bindung durch Verweis verwendet. In Ihrem Fall sollten Sie bindValue verwenden stattdessen:

foreach( $binders as $key => $value ) {
    $sql->bindValue( $key, $value );
}

Oder Sie können Ihr Array direkt an execute() übergeben Methode:

$sql->execute( $binders );

Wie im Handbuch beschrieben:

the variable is bound as a reference and will only be evaluated at the time that PDOStatement::execute() is called.

Wenn also Ihre foreach-Schleife $value endet hat den Wert des letzten Array-Elements Apple . Also beim execute läuft, beide :ctid und :p1 Werte werden gleich Apple . Das ist sicherlich nicht das, was Sie wollen)