php - mysqli_stmt::bind_param() 的参数 2 预期为引用,给出值

标签 php mysqli prepared-statement

$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');

关于php - mysqli_stmt::bind_param() 的参数 2 预期为引用,给出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35414820/

相关文章:

php - 如何在 codeigniter 的当前日期中插入日期间隔?

php - 合并两个 phpmysql 查询

php - 有效地删除多个表中的数据mySQLi Prepared Statement

c# - 我们如何递归地组装准备好的语句

php - 单个准备好的语句占位符不起作用

php - Opencart 重定向到 www.localhost.com

javascript - jQuery.getJSON() 不工作

php xmlReader 与 xmlparser

php - 简单搜索功能,MySQL 准备语句问题

php - mysqli multi_query 后跟查询