Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CodeIgniter active record, Add IF statement in ->select() function

I have this query:

$this->db->select("
    IF(predicts.predict_owner = votes.vote_user_id , IF(judges.judge_did_accept = 1 , True , False) , 'NotExists' )" , 'user_judgement');

I get syntax error on

  `'NotExists'` )

If I run the query directly inside the database, it works fine...
Is there any way to prevent CI to add the sign ` automatically?

Thanks

like image 269
fatnjazzy Avatar asked Aug 19 '11 16:08

fatnjazzy


1 Answers

You can call the select method with FALSE as the last parameter, like this

$this->db->select("IF(predicts.predict_owner = votes.vote_user_id , IF(judges.judge_did_accept = 1 , True , False) , 'NotExists' ),'user_judgement'",false);

That will prevent CI to add the `

From User Guide

$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.

PS: I see you call select with the second param as "user_judgement", I'm not sure what that should be doing, it's not the cay CI wants you to use Active Record

like image 106
Dan F. Avatar answered Oct 31 '22 07:10

Dan F.