避免CI查询的反引号

时间:2014-08-13 06:26:31

标签: php mysql codeigniter

我的代码是

public function getbonexpense($yr=null)
        {
            $this->db->select('year(un_due_date)  as year,month(un_due_date) as month,sum(coalesce(bank_amount,0) +amount) as bonsum');
            $this->db->from('bon_expense');
            $this->db->join('bank_expense','bon_expense.id_bon_exp = bank_expense.bon_exp_id', 'left');
            $this->db->where('expense_status',3);
            $this->db->group_by('year(un_due_date)');
            $this->db->group_by('month(un_due_date)');
            if(!empty($yr))$this->db->where('year(un_due_date)',$yr);
            $this->db->order_by('month(un_due_date)','desc');
            $query = $this->db->get();
            if($query->num_rows() != 0)
                    return $query->result_array();
            else
                    return false;
        }

但在运行查询中自动插入代码(`)

SELECT year(un_due_date) as year, month(un_due_date) as month, sum(coalesce(amount, 0)+coalesce(bank_amount, **`0))`** as bonsum
FROM (`crm_bon_expense`)
LEFT JOIN `crm_bank_expense` ON `crm_bon_expense`.`id_bon_exp` = `crm_bank_expense`.`bon_exp_id`
WHERE `expense_status` =  3
AND year(un_due_date) =  '2014'
GROUP BY year(un_due_date), month(un_due_date)
ORDER BY month(un_due_date) desc

单个反引号来自sum()函数。我怎么能避免它?

1 个答案:

答案 0 :(得分:3)

FALSE - >中添加2 nd param db select方法,请参见下面的示例代码

$this->db->select('year(un_due_date)  as year, 
                   month(un_due_date) as month,
                   sum(coalesce(bank_amount,0) +amount) as bonsum', FALSE);


文档:

https://ellislab.com/codeigniter/user-guide/database/active_record.html#select