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

CodeIgniter如何将模型查询结果集返回给调用端并解决查询报错

问题原因及修复方案

1. 核心语法错误

原模型方法中SQL语句的引号嵌套逻辑混乱,单双引号未正确闭合,导致PHP解析语法失败,是直接触发报错的原因。

2. 查询结果处理错误

CodeIgniter 中$this->db->query()执行后返回的是CI_DB_result查询对象,不能直接用echo输出,且原方法没有写return返回值,控制器无法拿到查询到的数据。

3. 安全风险

直接拼接用户传入的参数到SQL语句中,存在SQL注入漏洞,需使用框架提供的查询绑定功能规避风险。


修复后代码

模型方法
public function get_records_all($st_date,$end_date)
{
    $sql = 'SELECT *
        FROM `crm_listings`  
        WHERE added_date BETWEEN ? AND ?
        ORDER BY `added_date` DESC';
    // 用查询绑定自动处理参数转义和引号
    $query = $this->db->query($sql, [$st_date, $end_date]);
    // 返回数组格式的查询结果
    return $query->result_array();
}
控制器补充(可选)

如果需要查看输出结果,可在控制器中补充打印逻辑:

function fetch_status()
{
    $startDate = '';
    $endDate = '';
    $this->load->model('crm/user_model');
      
    if ($this->input->post('startDate')) {
        $startDate = $this->input->post('startDate');
    }
    if ($this->input->post('endDate')) {
        $endDate = $this->input->post('endDate');
    }
    $data_all = $this->user_model->get_records_all($startDate,$endDate);
    // 输出结果示例
    print_r($data_all);
}

内容的提问来源于stack exchange,提问作者Jay Modi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:45:02