【发布时间】:2017-10-17 10:59:32
【问题描述】:
我的 PHP 版本为 5.5.9-1,并且在调用 stmt 的 call_user_func_array 和 bind_param 时遇到问题。我有以下代码
$query = "SELECT * FROM studentTable WHERE firstname = ?";
if(!($stmt = $conn->prepare($query))){
echo "Prepare failed: (" . $conn->errno . ") " . $conn->error;
return;
}
$paramType= 's';
$paramValue= 'bob';
$a_params = array(&$paramType, &$paramValue);
call_user_func_array(array($stmt, 'bind_param'),$a_params)
我收到以下错误,我不知道为什么
Binding parameters failed: (0)
我尝试包装字符串“'s'”,但报告没有足够的参数。我做错了什么?
谢谢
更新
我已经尝试了php5.3 - mysqli_stmt:bind_params with call_user_func_array warnings 的代码,但仍然无法正常工作
【问题讨论】:
-
为什么在stmt上使用call_user_func_array而不是直接调用bind_param?
-
我想动态添加绑定,只是想让示例工作
-
Your code basically works,您是否 100% 确定错误不是来自其他地方?有没有可能,你的错误甚至不是错误?我猜你检查错误的方式是错误的,因为你没有检查类型安全。
-
此代码缺少可验证的示例和可靠的错误消息
标签: php mysql mysqli prepared-statement call-user-func-array