how do i ignore the backticks in codeigniter when

2019-01-20 16:27发布

问题:

how do i ignore the backticks in codeigniter when using active records? i need to order by cases

case when roll_number is null then 1 else 0 end,

which code igniter makes it as

ORDER BY `case` when roll_number is null then 1 else 0 end

which gives me an error. Please help

回答1:

This could be a little old, but for someone who is looking for an answers you could add

$this->db->_protect_identifiers=false;

be aware that this will remove all backticks on this query



回答2:

From the docs:

$this->db->select() accepts an optional second parameter. If you set it to FALSE, CodeIgniter will not try to protect your field or table names with backticks. This is useful if you need a compound select statement.



回答3:

Thanks for your answers...

I figured out that in active records when using $this->db->order_by() you can't skip the backticks.

So ended up using $this->db->query($sql); where I assigned my normal mysql query to the $sql variable