flapflapjack
@flapflapjack
на треть я прав

На что ругается PDO MySQL в запросе INSERT?

Что-то я наверное не вижу. Наверное ошибка на поверхности, но хоть убейте - не вижу ошибку.

Структура таблицы MySQL:
id	int(11) (Auto Increment)
title	varchar(255)
create_date	date
show_date	date
user	int(11)
text	text
show	set('show', 'hide')


Тут нагляднее, визуально легче воспринимается:
5c42503a02a84075386972.png

Подготавливаю запрос:

$result=$this->db->prepare("INSERT INTO news (title,create_date,show_date,user,text,show) VALUES (:title,NOW(),:show_date,:user,:text,:show)");


PDO ругается, мол ошибка:
....for the right syntax to use near 'show) VALUES (?,NOW(),?,?,?,?)' at line 1....


Я вот честное слово - в упор не вижу, что ему не нравится. Execute даже не делал еще - он именно на подготовленное выражение ругается. Ну ведь нет никакой ошибки! Ткните меня мордой, если видите косяк, пожалуйста.

Может что-то ему не нравится, что тип ячейки SHOW - это тип SET с двумя вариантами (show/hide)? Но я пробовал в подготовленном запросе заменить :show на строку 'show' - ошибка не исчезает.
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
DevMan
@DevMan
show - зарезервированное слово, возьми в кавычки.
вообще стоит взять за правило указывать таблицы/колонки в кавычках для избежания подобных факапов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽