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

CodeIgniter 4中无法打印最后执行的SQL查询,该如何解决?

CodeIgniter 4 打印最后执行SQL查询的正确方法

你之前的写法不符合CI4的规范,按下面的步骤调整就能解决问题:

1. 先开启查询日志

CI4默认未启用查询日志,需要先打开:

  • 打开app/Config/Database.php,找到对应数据库组(比如default)的配置,设置logQueries = true;
  • 或者在代码里临时开启:
    $this->db->enableQueryLogs();
    

2. 正确获取并打印最后查询

CI4中获取最后执行查询的方法是getLastQuery(),注意两个关键点:

  • 模型里直接用$this->db调用即可,无需额外定义$db变量
  • getLastQuery()返回的是Query对象,必须转成字符串才能正常输出

修正后的代码示例:

public function saveForm($result2){
    // 临时开启查询日志(如果配置文件里没开的话)
    $this->db->enableQueryLogs();
    
    $query = $this->db->table("reg_form")->insert($result2);
    
    // 转换为字符串后输出
    echo (string)$this->db->getLastQuery();
    
    // return $query;
}

补充:自定义数据库连接的情况

如果用的是非默认数据库连接,先获取连接实例再操作:

$db = \Config\Database::connect('你的连接组名称');
$db->enableQueryLogs();
// 执行插入操作
echo (string)$db->getLastQuery();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:39:59