为什么我从文件mysqli / mysqli_driver.php收到错误?

时间:2015-01-17 02:17:41

标签: php codeigniter

我刚刚将我的项目上传到我的网站服务器,当我点击我的提交按钮登录表单时收到此错误消息。

A PHP Error was encountered
Severity: Warning

Message: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given

Filename: mysqli/mysqli_driver.php

Line Number: 315

我的本​​地服务器上绝对没有错误,我完全被问题所困扰。如果有人可以请求帮助我会非常感激,并会给予很多尊重。

我的项目正在使用codeigniters框架。

4 个答案:

答案 0 :(得分:1)

mysqli_real_escape_string() is used to prepare text data too be save in an SQL Record Column.<br>And the data being wrint to that column does not exist.<br><br>

转到{#1}}到第315行并在命令的前面加上一个标记来压制警告。

自:

mysqli_driver.php

要:

 mysqli_real_escape_string() 

如果要转义的值是整数,则使用intval()代替:
这会将NULL变为零

 @mysqli_real_escape_string() 

答案 1 :(得分:0)

不要使用@隐藏警告,而是检查conn_id是否为false:

变化

 $str = mysqli_real_escape_string($this->conn_id, $str);
像那样

if($this->conn_id){
    $str = mysqli_real_escape_string($this->conn_id, $str);
}

答案 2 :(得分:0)

我的解决方案是初始化连接,如果它不可用。 改变第315行:

ExcelHelper myExcelHelper = new ExcelHelper();
myExcelHelper.exportExcel(myDataTable);

答案 3 :(得分:0)

我也遇到了这个问题。 沃尔夫冈的解决方案对我很有用。

如果您使用codeIgniter,请更改数据库配置 $db['default']['autoinit'] = TRUE; 也可以解决问题。