0

CodeIgniter で失敗した SQL ステートメントを出力したいと考えています。最初の試行では、db->last_query() を出力する以下の try/catch ブロックを使用しました。ただし、ログからわかるように、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'
4

2 に答える 2

2

$ this-> db-> last_query()行は、最後に実行されたクエリを返します。

しかし、SQLログファイルは、SQLクエリにエラーがあることを示しています。そのため、クエリは実行されませんでした。last_query()行は何も返すことができません。

Query error: Unknown column 'template' in 'where clause'

テーブルにテンプレート列がありますか?

于 2013-03-02T20:37:34.723 に答える
0

-簡単な解決策。- firfox を使用している場合。firbug をインストールして有効にするよりも、firebug コンソールで、次のようなリクエストに関連するものを表示できます-http リクエスト-データの投稿/取得-応答など

于 2015-08-01T10:15:01.193 に答える