#mysql #where-in
#mysql #где-в
Вопрос:
У меня возникли проблемы с чем-то вроде этого:
UPDATE `database` SET `col1` = 0 WHERE `col2` in (1,2,3,4);
Ниже приведен фактический неудачный запрос.
Error Message:
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@cc3.biz, sales@allservico.com)' at line 1
SQL:
UPDATE `CubeCart_customer` SET `optIn1st` = 0 WHERE `email` in (markscarts@cc3.biz, sales@allservico.com);
Я искал в Интернете и здесь и попробовал несколько вариантов своего кода для создания запроса, но я просто не могу точно определить, где у меня сбой.
Любой свет по этому вопросу был бы высоко оценен.
Ответ №1:
Вам нужны кавычки вокруг ваших строковых значений
UPDATE CubeCart_customer
SET optIn1st = 0
WHERE email in ('markscarts@cc3.biz', 'sales@allservico.com');
Комментарии:
1. А, понятно. Значения вводятся в текстовую область на html-странице в виде адресов электронной почты, разделенных запятыми, поэтому мне придется обработать мою строку $ _POST[‘edit_group’], чтобы вставить кавычки, и попробовать это. Спасибо.
2. Это открывает дверь для SQL-инъекций. Было бы лучше и проще просто использовать подготовленные инструкции . Посмотрите руководство. Это просто, и вам больше не нужно беспокоиться о кавычках.