CodeIgniter中获取用户列表返回空数组问题排查
问题分析与解决方案
首先看你的模型代码,发现一个非常关键的错误:构造函数的名字拼写错误!
你的模型里写的是:
public function _consruct(){ parent::_construct(); }
正确的PHP构造函数应该是双下划线开头和结尾:__construct(),修正后代码如下:
public function __construct(){ parent::__construct(); }
这个错误会导致CodeIgniter父类的构造函数没有被正确调用,数据库连接无法初始化。虽然查询构建器能生成正确的SQL语句(所以last_query()能输出正确内容),但实际上并没有真正执行数据库查询,自然返回空数组。
修复这个拼写错误后,再测试getData()方法,应该就能得到预期的用户列表了。
其他可能的排查方向(如果修复构造函数后仍有问题)
- 核对数据库配置:确认
application/config/database.php里的数据库名称、用户名、密码是否和你在phpMyAdmin中使用的完全一致,避免连接到错误的数据库。 - 开启数据库调试:在
database.php中设置$db['default']['db_debug'] = TRUE;,如果查询过程中有错误(比如表不存在、权限不足),会直接显示错误信息,快速定位问题。 - 清除查询缓存:如果之前使用过查询缓存,可能干扰当前查询,可以在
getData()方法开头添加$this->db->flush_cache();清除缓存后再执行查询。 - 检查表名前缀:如果你的CodeIgniter配置了数据库表前缀(
$db['default']['prefix']),模型中的表名需要加上前缀,比如前缀是ci_,则应写成ci_users、ci_users_groups,否则会找不到对应数据表。
内容的提问来源于stack exchange,提问作者DhavalThakor
相关产品推荐
相关产品推荐

