execute()
方法需要一个数组。从文档中:
执行准备好的语句。如果准备好的语句包含参数标记,您必须:
With array($id,$array)
您将传递一个如下所示的多维数组:
Array
(
[0] => 1
[1] => Array
(
[0] => a
[1] => b
[2] => c
)
)
这当然不是它所期望的。它需要一个包含要插入的值的一维数组。
要解决此问题,您必须修改数组格式。将 ID 添加到数组的开头,如下所示:
$array = array(1, "a", "b", "c");
如果 ID 变量是动态生成的,那么您可以使用以下命令手动将其添加到数组中:array_unshift()
功能:
$id = "1";
$array = array("a", "b", "c");
$array = array_unshift($array, $id);
...然后修改execute()
像这样调用:
$statement1->execute($array);