我刚刚将我的项目上传到我的网站服务器,当我点击我的提交按钮登录表单时收到此错误消息。
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框架。
答案 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;
也可以解决问题。