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 - зарезервированное слово, возьми в кавычки.
вообще стоит взять за правило указывать таблицы/колонки в кавычках для избежания подобных факапов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы