我想在CodeIgniter中打印出一个失败的SQL语句。在我第一次尝试时,我使用下面的try / catch块打印db-> last_query()。但是,正如您从日志中看到的那样,不会打印SQL语句。我做错了什么?
public function get($limit = NULL, $offset = NULL, $sort = NULL, $search = NULL)
{
try {
if ($limit !== NULL) $limit = (int) $limit;
if ($offset !== NULL) $offset = (int) $offset;
if (is_array($sort)) {
foreach ($sort as $field => $order) {
$this->db->order_by($field, $order);
}
}
if (is_array($search)) {
foreach ($search as $field => $match) {
$this->db->where($field, $match);
}
}
$this->db->select($this->select_fields);
$query = $this->db->get($this->table_name, $limit, $offset);
// Set the results
$this->last_query = $this->db->last_query();
$this->num_rows = $query->num_rows();
$this->result_array = $query->result_array();
$this->db_result = $query;
$this->error_number = $this->db->_error_number();
$this->error_message = $this->db->_error_message();
} catch(Exception $e) {
log_message('error',$e->getMessage());
log_message('error',$this->db->last_query());
$this->error_number = 500;
}
}
我得到的错误是:
DEBUG - 2013-03-02 15:16:50 --> DB Transaction Failure
ERROR - 2013-03-02 15:16:50 --> Query error: Unknown column 'template' in 'where clause'
答案 0 :(得分:2)
$ this-> db-> last_query()行返回上次运行的查询 。
但是您的SQL日志文件向我们显示您的SQL查询中有错误。因此,您的查询未运行。 last_query()行不能返回任何内容。
Query error: Unknown column 'template' in 'where clause'
表格中是否有模板列?
答案 1 :(得分:0)
- 简单的解决方案。 - 如果你使用的是firfox。比istall firbug并启用它,在firebug控制台中,您可以查看与您的请求相关的任何内容,例如 - 您的http请求 - 发布/获取数据 - 回应等