我一直在尝试将阵列与准备好的语句绑定数天,我设法创建了?,?
和i,i
这些数字代表我的代码为$params
和$type
。当我使用call_user_func_array与我的代码,因为我没有设法使它工作,我已经尝试了多个来自这个网站的答案,但我没有得到它的工作。PHP:使用Call_User_Func和绑定参数的“预期值为参考”
完整的查询代码:
$params = implode(',', array_fill(0, count($greaterThan), '?'));
$stmt11 = $mysqli->prepare("SELECT nombre FROM usuarios WHERE id IN (".$params.")");
$type = implode('', array_fill(0, count($greaterThan), 'i'));
$param = implode(",", $greaterThan);
call_user_func_array(array($stmt11, "bind_param"), array_merge(array($type), $greaterThan));
print_r(error_get_last());
$stmt11->execute();
$stmt11->store_result();
$stmt11->bind_result($nombresmayores);
$arraynombresmayores = array();
$stmt11->store_result();
while($stmt11->fetch()){
$arraynombresmayores[] = $nombresmayores;
}
凡$param
是用逗号分隔(以防万一你需要它)的值。我试图绑定的数组是$greaterThan
,查询完美,因为我已经做了一些调试。错误的程序输出是:
Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given
最后,所述阵列的内容是:
array(2) {
[0]=>
int(2)
[1]=>
int(4)
}
是的,它更干净。需要哪个版本才能完成这项工作? –
*任何*支持的版本。目前支持的最新版本是5.6。 –