You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter中real_escape_string() on boolean错误排查与解决

错误分析与解决方案

这个错误的核心本质是:你的CodeIgniter应用没有成功建立MySQL数据库连接,导致$this->db底层依赖的mysqli连接对象变成了布尔值false。当你调用$this->db->where()方法时,驱动内部尝试调用real_escape_string()这个mysqli连接对象的方法,自然就会抛出"Call to a member function on boolean"的报错——毕竟布尔值没有任何方法可言。

你的$where数组格式完全正常,和这个错误没有关系,问题100%出在数据库连接环节。结合你的环境(CI3.0.4 + PHP7.2 + MySQL5.7),我整理了以下排查和解决步骤:


可能的原因与对应解决方法

1. 数据库配置文件错误(最常见)

打开application/config/database.php,仔细核对每一项配置,尤其是以下关键字段:

$db['default'] = array(
    'hostname' => 'localhost', // 尝试换成127.0.0.1试试(localhost用socket,127.0.0.1用TCP,MySQL5.7偶尔有兼容差异)
    'username' => '你的数据库用户名', // 比如root或自定义用户
    'password' => '你的数据库密码', // 注意特殊字符不需要转义,直接写原始密码
    'database' => '要连接的数据库名称', // 确认这个数据库在MySQL中确实存在
    'dbdriver' => 'mysqli', // 必须是mysqli,不能写错
    'db_debug' => TRUE, // 强烈打开这个选项,它会直接显示具体的连接错误(比如权限拒绝、数据库不存在),比当前的模糊报错有用得多
    'pconnect' => FALSE, // CI3推荐关闭持久连接,避免连接池异常
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci'
);

2. MySQL服务未启动或无法访问

在Ubuntu终端执行以下命令检查MySQL状态:

sudo systemctl status mysql

如果服务未运行,启动它:

sudo systemctl start mysql

如果经常出现服务中断,可以设置开机自启:

sudo systemctl enable mysql

3. 数据库用户权限不足

登录MySQL终端,检查你的数据库用户是否拥有目标数据库的访问权限:

-- 查看现有用户及允许的连接主机
SELECT user, host FROM mysql.user;

-- 如果你的用户没有localhost权限,创建并授权:
CREATE USER '你的用户名'@'localhost' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'localhost';
FLUSH PRIVILEGES;

4. PHP的mysqli扩展未启用

虽然PHP7.2默认应该启用mysqli,但还是要确认:
在终端执行:

php -m | grep mysqli

如果没有输出,编辑Apache对应的php.ini文件(通常路径是/etc/php/7.2/apache2/php.ini),找到;extension=mysqli这一行,去掉前面的分号,然后重启Apache:

sudo systemctl restart apache2

5. 手动测试底层连接(排除CI框架问题)

在你的模型或控制器中加入一段原生mysqli连接代码,直接测试底层连接是否正常:

$conn = mysqli_connect('localhost', '你的用户名', '你的密码', '你的数据库名');
if (!$conn) {
    die('连接错误: ' . mysqli_connect_error());
}
echo '连接成功';
mysqli_close($conn);

如果这段代码报错,说明问题在MySQL或PHP环境,和CodeIgniter无关;如果能正常连接,再回到CI的配置文件排查细节。


内容的提问来源于stack exchange,提问作者Thiago Bittencourt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:59:33