Как пропустить кавычки из обновления активной записи воспламенителя кода, чтобы использовать условие при обновлении? - PullRequest
2 голосов
/ 21 марта 2012

Я пишу запрос так: -

$data = array(
    'company_billing' => "if (company_billing  = $userId, (NULL), $userId)",
    'company_admin' => "if (company_admin  = $userId, (NULL), $userId)",
);

$this->db->where('id', $organizationId);
$this->db->update('organization', $data);

Я ожидал что-то вроде: -

UPDATE `organization` SET `organization`.`company_billing` = if (company_billing = 2, (NULL), 2), `organization`.`company_admin` = if (company_admin = 2, (NULL), 2) WHERE `id` = 1

Но я получаю: -

UPDATE `organization` SET `organization`.`company_billing` = 'if (company_billing = 2, (NULL), 2)', `organization`.`company_admin` = 'if (company_admin = 2, (NULL), 2)' WHERE `id` = 1

Я хочу пропустить эти кавычки, если условие блока.

Есть ли способ достичь этого, или мне придется написать собственный запрос?

Спасибо

1 Ответ

1 голос
/ 21 марта 2012
Значения функций

::update и ::insert автоматически экранируются, создавая более безопасные запросы

$this->db->set('company_billing' , "if (company_billing  = $userId, (NULL), $userId)", false);
$this->db->set('company_admin', "if (company_admin  = $userId, (NULL), $userId)", false);
$this->db->where('id', $organizationId);
$this->db->update('organization');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...