CodeIgniter активная запись, добавить оператор IF в -> функция выбора () - PullRequest
5 голосов
/ 19 августа 2011

У меня есть этот запрос:

$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 Ответ

19 голосов
/ 19 августа 2011

Вы можете вызвать метод выбора с FALSE в качестве последнего параметра, например,

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

Это помешает CI добавить `

С Руководство пользователя

$ this-> db-> select () принимает необязательный второй параметр. Если вы установите значение FALSE, CodeIgniter не будет пытаться защитить имена полей или таблиц обратными галочками. Это полезно, если вам нужен составной оператор выбора.

PS: я вижу, что вы вызываете select со вторым параметром как "user_judgement", я не уверен, что это должно делать, это не тот случай, когда CI хочет использовать Active Record

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...