通过codeigniter中的查询来逃避订单

时间:2015-02-13 03:26:23

标签: php mysql sql codeigniter

这是SQL查询运行:

SELECT * FROM (`news`) WHERE `country` IS NULL AND `region` IS NULL ORDER BY IFNULL(update_date, `create_date)` DESC

你可能会注意到create_date有一些格式错误,我想禁用转义,但即使我在order_by函数后添加false也没有效果。怎么解决?非常感谢

 $this->db->select('*');
 $this->db->from('news');
 $this->db->where($data);
 $this->db->order_by('IFNULL(update_date,create_date)', 'DESC', false);
 $query = $this->db->get();
 return $query->result_array();

3 个答案:

答案 0 :(得分:7)

使用以下代码:

$ this-> db-> _protect_identifiers = FALSE;

$ this-> db-> order_by(' IFNULL(update_date,create_date)',' DESC',false);

$ this-> db-> _protect_identifiers = TRUE;

答案 1 :(得分:2)

在数据库选择方法的基础上添加此行。

$this->db->_protect_identifiers = FALSE;

答案 2 :(得分:0)

仅进行更新,尝试使带乘法的sql选择适用于C.I。 3.10

$this->db->order_by("results.result * 1", 'ASC', FALSE);

只需将FALSE添加到order_by即可解决,因为$ this-> db-> _ protect_identifiers触发了C.I上的错误。 3.10