请看下面我的代码。我试图将一系列参数绑定到我准备好的语句中。我一直在网上四处逛逛,可以看到我必须使用call_user_func_array但无法正常工作。我得到的错误是:“第一个参数应该是有效的回调,给出了’Array’”我可能是错误的,但是我假设第一个参数可以是一个数组,并且此错误消息可能会引起误解。我认为问题是我的阵列在某种程度上存在错误。谁能看到我在做什么错?谢谢。
$type = array("s", "s"); $param = array("string1","anotherstring"); $stmt = $SQLConnection->prepare("INSERT INTO mytable (comp, addl) VALUES (?,?)"); $params = array_merge($type, $param); call_user_func_array(array(&$stmt, 'bind_param'), $params); $SQLConnection->execute();
我不知道您为什么 要 使用call_user_func_array,但这是另一个故事。
call_user_func_array
在我眼中唯一可能出错的是,您正在使用对该对象的引用。假设您使用的是PHP 5. *,则没有必要:
call_user_func_array(array($stmt, 'bind_param'), $params);