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);