CodeIgniter活动记录,在 - > select()函数中添加IF语句

时间:2011-08-19 16:14:10

标签: php codeigniter activerecord

我有这个问题:

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

我在

上遇到语法错误
  `'NotExists'` )

如果我直接在数据库中运行查询,它可以正常工作...
有没有办法阻止CI自动添加标志?

谢谢

1 个答案:

答案 0 :(得分:19)

您可以使用FALSE作为最后一个参数调用select方法,如此

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

这将阻止CI添加`

来自User Guide

  

$ this-> db-> select()接受可选的第二个参数。如果将其设置为FALSE,CodeIgniter将不会尝试使用反引号来保护您的字段或表名称。如果您需要复合选择语句,这非常有用。

PS:我看到你用第二个参数调用select作为“user_judgement”,我不确定应该做什么,这不是cay CI希望你使用Active Record