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

Fehler bei der PDO-Ausführung der Array-zu-String-Konvertierung

execute() -Methode erwartet ein einzelnes Array. Aus der Dokumentation:

Mit array($id,$array) Sie würden ein mehrdimensionales Array übergeben, das wie folgt aussieht:

Array
(
    [0] => 1
    [1] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

)

Dies ist sicherlich nicht das, was es erwartet. Es benötigt ein eindimensionales Array, das die einzufügenden Werte enthält.

Um dieses Problem zu beheben, müssen Sie das Array-Format ändern. Fügen Sie die ID wie folgt am Anfang des Arrays hinzu:

$array = array(1, "a",  "b",  "c");

Wenn die ID-Variable dynamisch generiert wird, können Sie sie manuell mit array_unshift() zum Array-Start hinzufügen Funktion:

$id = "1";    
$array = array("a",  "b",  "c");
$array = array_unshift($array, $id);

... und dann execute() ändern so aufrufen:

$statement1->execute($array);