Обновление нескольких строк Mysql с php - PullRequest
1 голос
/ 29 июля 2009

Вот что я пытаюсь сделать: обновить произвольное количество строк, изменив несколько полей на то же самое значение.

$var = "1 3 5 7 9";  
$query = "UPDATE tablename SET seen_before = 1 WHERE id = SET ($var);"

У меня такой вопрос: каков точный синтаксис в предложении Where, когда я смотрю в наборе, и как мне передать элементы Set через переменную php.

Спасибо
Michael

1 Ответ

6 голосов
/ 29 июля 2009
$ids   = "1, 3, 5, 7, 9";  
$query = "UPDATE tablename SET seen_before = 1 WHERE id IN ($ids)";

Если ваши идентификаторы являются динамическими, и, возможно, они есть, используйте что-то вроде этого, чтобы правильно экранировать их для запроса SQL:

// Assuming $ids it's coming from an untrusted source, like $_GET
$ids   = array(1, 3, 5, 7, 9);
$ids   = array_map('intval', $ids);
$ids   = implode(', ', $ids);

$query = "UPDATE tablename SET seen_before = 1 WHERE id IN ($ids)";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...