execute()
El método espera una sola matriz. De la documentación:
Con array($id,$array)
estaría pasando una matriz multidimensional que se ve así:
Array
(
[0] => 1
[1] => Array
(
[0] => a
[1] => b
[2] => c
)
)
Esto ciertamente no es lo que espera. Necesita una matriz unidimensional que contenga los valores que se insertarán.
Para solucionar este problema, debe modificar el formato de matriz. Agregue la ID al comienzo de la matriz, así:
$array = array(1, "a", "b", "c");
Si la variable ID se genera dinámicamente, puede agregarla manualmente a la matriz usando array_unshift()
función:
$id = "1";
$array = array("a", "b", "c");
$array = array_unshift($array, $id);
... y luego modifique execute()
llamar así:
$statement1->execute($array);