execute()
metoda oczekuje pojedynczej tablicy. Z dokumentacji:
Z array($id,$array)
przekażesz wielowymiarową tablicę, która wygląda tak:
Array
(
[0] => 1
[1] => Array
(
[0] => a
[1] => b
[2] => c
)
)
Z pewnością nie tego oczekuje. Potrzebuje jednowymiarowej tablicy zawierającej wartości do wstawienia.
Aby rozwiązać ten problem, musisz zmodyfikować format tablicy. Dodaj identyfikator na początku tablicy, na przykład:
$array = array(1, "a", "b", "c");
Jeśli zmienna ID jest generowana dynamicznie, możesz ręcznie dodać ją do tablicy za pomocą array_unshift()
funkcja:
$id = "1";
$array = array("a", "b", "c");
$array = array_unshift($array, $id);
... a następnie zmodyfikuj execute()
zadzwoń w ten sposób:
$statement1->execute($array);