2015-01-28 6 views
0

Я использую Nette Framework и у меня есть эти команды в действии:Формат SQL-запрос по функции PHP взрываются

$id = is_array($id) ? implode(', ', $id) : $id; 
    $this->database->table('manufacturing')->where('id', $id)->update(array('trash' => '1')); 

Когда я выбираю 4 строки в моей сетке и называем это действие для удаления элементов, он будет генерировать этот SQL-код:

UPDATE `manufacturing` 
SET `trash`='1' 
WHERE (`id` = '31, 32, 33, 34') 

Но мне нужен код, как это, чтобы обновить все строки:

UPDATE `manufacturing` 
SET `trash` = '1' 
WHERE ((`id` = '31') OR (`id` = '32') OR (`id` = '33') OR (`id` = '34')); 

Есть возможность сделать ш с функцией развязывания? Спасибо.

редактировать: , когда я сделал это:

$id = is_array($id) ? implode(' "OR" ', $id) : $id; 

он будет делать это:

UPDATE `manufacturing` 
SET `trash`='1' 
WHERE (`id` = '31 \"OR\" 32 \"OR\" 33 \"OR\" 34') 
+2

Я не знаком ж/Nette, но я думаю, что вы хотите посмотреть на вариант или альтернативы '-> где()', что позволяет сделать 'пункт в' вместо of '=' – mopo922

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^