【发布时间】:2017-09-12 01:12:52
【问题描述】:
几天来,我一直在尝试将数组与准备好的语句绑定,我设法创建了 ?,? 和 i,i 的数量,这些在我的代码中表示为 $params 和 $type。将 call_user_func_array 与我的代码一起使用时会出现问题,因为我没有设法让它工作,我已经尝试了这个网站的多个答案,但我没有让它工作。
完整查询代码为:
$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)
}
【问题讨论】: