参数2 to mysqli_stmt::bind_param() 预计是一个参考,给定的值
Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given
$type = array('i','i');
$param = array("1","1");
$stmt = $mysqli->prepare("SELECT par1, par2 FROM table WHERE par3 = ? AND par4 = ?");
$refs = array();
foreach($param as $key => $value) {
$refs[$key] = &$param[$key];
}
$result_params = array_merge($type,$refs);
call_user_func_array(array($stmt, 'bind_param'), $result_params);
$stmt->execute();
var_dump($result_params)
:
array(4) {
[0]=>
string(1) "i"
[1]=>
string(1) "i"
[2]=>
&string(1) "1"
[3]=>
&string(1) "1"
}
当我们使用代码时出现错误:
Parameter 2 to mysqli_stmt::bind_param() expected to be a reference,
value given in ...
为什么我们会收到此错误以及如何解决该问题?
问题已解决。
解决问题:
而不是 $type = array('i','i');
需要使用 $type = array('ii');
$type = array('i','i');
$param = array("1","1");
$stmt = $mysqli->prepare("SELECT par1, par2 FROM table WHERE par3 = ? AND par4 = ?");
$refs = array();
foreach($param as $key => $value) {
$refs[$key] = &$param[$key];
}
$result_params = array_merge($type,$refs);
call_user_func_array(array($stmt, 'bind_param'), $result_params);
$stmt->execute();
var_dump($result_params)
:
array(4) {
[0]=>
string(1) "i"
[1]=>
string(1) "i"
[2]=>
&string(1) "1"
[3]=>
&string(1) "1"
}
当我们使用代码时出现错误:
Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given in ...
为什么我们会收到此错误以及如何解决该问题?
问题已解决。
解决问题:
而不是 $type = array('i','i');
需要使用 $type = array('ii');