【问题标题】:codeigniter 4 not showing mysql full query when error occured发生错误时,codeigniter 4 未显示 mysql 完整查询
【发布时间】:2021-10-14 11:32:04
【问题描述】:

发生错误时如何显示完整的查询字符串。我的查询如下

    $builder = $this->table("$this->table");
    $builder->select("usr_lock");
    $builder->where("usr_lock >= '" . date('Y-m-d H:i:s') . "'");
    $builder->where($this->primarykey, $user_id);
    $r = $builder->get()->rowArray();
    echo "<br>Error: " . $builder->error();
    echo "<br>Last Query: " . $builder->getLastQuery();
    return $r['usr_lock'];

执行此操作时,错误显示为You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= '1'' at line 4 。要了解错误,我需要获得完整的查询。所以我使用了$builder-&gt;getLastQuery()。但它不执行。页面看起来像

【问题讨论】:

    标签: php mysql codeigniter-4


    【解决方案1】:

    在执行$builder-&gt;get()之前使用$builder-&gt;getCompiledSelect()

        $builder = $this->table("$this->table");
        $this->db_debug = FALSE;
        $builder->select("usr_lock");
        $builder->where("usr_lock >= '" . date('Y-m-d H:i:s') . "'");
        $builder->where($this->primarykey, $user_id);
        echo "<br>Last Query: " . $builder->getCompiledSelect(false);
        exit();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      • 2012-05-13
      • 1970-01-01
      相关资源
      最近更新 更多