CodeIgniter4出现Call to a member function getResultArray() on bool错误怎么解决
报错解决方案
这个错误的核心原因是$builder->get()执行SQL查询失败返回了布尔值false,你后续对false调用getResultArray()方法就会触发报错。本地运行正常、线上报错均为两个环境的数据库配置/权限/表结构差异导致,按以下步骤排查即可:
- 第一步:修正冗余的数据库连接代码
你代码中重复写了两次数据库连接逻辑\Config\Database::connect()和db_connect(),先删除其中一个保留单个连接即可,避免不同连接的配置冲突。 - 第二步:核对线上数据库配置
确认线上的数据库连接参数(host、端口、库名、账号、密码、表前缀)和本地完全一致,同时确认该数据库账号拥有t_prestamo、t_clientes两个表的查询权限。 - 第三步:核对表结构与字段
确认线上数据库中存在t_prestamo、t_clientes两张表,且关联字段匹配:t_prestamo表存在fk_idcliente字段、t_clientes表存在id_cliente字段,两个字段的类型、长度完全一致。 - 第四步:增加错误调试逻辑定位具体问题
你可以修改代码增加查询失败的判断,输出具体的数据库错误信息:
public function obt_lista_prestamos($activo){ $db = db_connect(); $builder = $db->table('t_prestamo'); $builder->select('*'); $builder->join('t_clientes', 't_prestamo.fk_idcliente = t_clientes.id_cliente'); $query = $builder->get(); // 新增查询失败判断 if (!$query) { // 输出具体数据库错误,调试完成后请删除该行输出 var_dump($db->error()); return []; } return $query->getResultArray(); }
输出的错误信息会直接告诉你问题根源(表不存在、字段不存在、权限不足等),对应修正即可恢复正常。
内容的提问来源于stack exchange,提问作者interplus
相关产品推荐
相关产品推荐

