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

CodeIgniter中Student_model的fetchDataPro方法用limit返回空数组问题

解决CodeIgniter中limit()导致查询返回空数组的问题

你的推测完全正确,问题确实出在limit()方法的参数使用上!

在CodeIgniter的Active Record实现里,limit()方法的参数顺序是固定的:

  • 第一个参数:要获取的记录数量
  • 第二个参数:查询的偏移量(从第几条数据开始读取)

而你当前的代码里把$from(应该是偏移量)放在了第一个位置,$to(应该是要获取的记录数)放在了第二个位置,这就导致当偏移量大于数据表的总记录数时,查询自然返回空数组了。

修改后的正确代码:

Student_model extends CI_Model { 
    public function fetchDataPro($offset, $limit) { 
        $query = $this->db->select(['signuppro.id','fname','lname','cname','profile_pic']) 
            ->from('signuppro') 
            ->join('course','cid=course.id') 
            ->limit($limit, $offset)  // 调换参数顺序,先传数量再传偏移量
            ->get(); 
        $result = $query->result(); 
        print_r($result);
        exit; 
    } 
}

额外排查小技巧:

如果你不确定生成的SQL语句是否符合预期,可以在get()方法执行前添加一行代码打印最终SQL:

// 在get()前添加
echo $this->db->last_query();
exit;

这样就能直观看到limit的参数是否正确传递,方便快速定位问题。

内容的提问来源于stack exchange,提问作者vivek modi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:46:13