• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Parameter 二 to mysqli_stmt:bind_param() expected to be a reference

mysql 搞代码 7年前 (2018-06-05) 169次浏览 已收录 0个评论

Parameter 2 to mysqli_stmt::bind_param() expected to be a reference
今天在用brophp(是lamp兄弟连里的一个框架),写程序的时候,老是报一个错误,具体情况是这样的

 if(empty($_GET['id'])) $this->error('数据不存在');  $c = D('news');  $id = $_GET['id'];  $num = $c->total();  $page = new Page($num,10);  $data = $c->where(array('categoryid'=>$id))->limit($page->limit)->select();   /*问题就出在这个地方了,我加了这个where条件,它就报错,如果不加,就正常,而且在报错的时候 调试信息里打印的时候sql语句,我在phpmyadmin里执行了下,也正常,可以查到数据,也就是说sql语句是没有问题的,后来在论坛里找到了方法与原因,看下面*/  $this->assign('p',$page->fpage());  $this->assign('data',$data);  //P($da);  $this->display('index/nlist'); 

欢迎大家阅读《Parameter 二 to mysqli_stmt:bind_param() expected to be a reference》,跪求各位点评,by 搞代码

运行时警告[在文件 H:/aphp/BroPHPTest/brophp/bases/dmysqli.class.php 中,第 75 行]:Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given
    SQL ERROR: [0] No data supplied for parameters in prepared statement

这个是它提示的错误,按照提示,找到dmysqli.class.php的75行。它的代码是

 call_user_func_array(array($stmt, 'bind_param'),$value); 

换成

 call_user_func_array(array($stmt, 'bind_param'), self::refValues($value)); 

然后,在这个文件里的其它地方,添加上这段代码

 function refValues($arr){ if (version_compare(PHP_VERSION, '5.3.0') >= 0) {  $refs = array();  foreach($arr as $key => $value)   $refs[$key] = &$arr[$key];   return $refs;  }   return $arr; } 

根据最后的这个函数,觉得这个应该和php的版本有关,所以暂时记录下吧。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Parameter 二 to mysqli_stmt:bind_param() expected to be a reference
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址