2012-01-10 1 views
2

MySQL возвращает ошибку синтаксиса для этого запроса (с помощью PHP):Другая ошибка синтаксиса MySQL с помощью INSERT INTO

INSERT INTO links (link, name, desc, category) 
VALUES ('www.contoso.com', 'Contoso', 'My Website', 'Vanity') 

ERROR: 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 'desc, category) VALUES ('www.contoso.com', 'Contoso', 'My Website', 'Vani' at line 1

Я не вижу ничего плохого с ним. Что дает?

+0

Как правило, не используйте зарезервированные слова для имен таблиц или столбцов. Это экономит много хлопот. – Ben

ответ

5

DESC является MySQL зарезервированным слова ... если вы хотите использовать его в качестве имени столбца необходимо заключить в обратных кавычках

Действительное сообщения об ошибке после слова «ряд» дает указание, где именно в ваш оператор SQL, парсер считает, что ошибка будет ... в этом случае, при слове «desc». Это часто может быть хорошим руководством для диагностики проблемы.

+0

В моей пустоте я не знал, что это зарезервированное слово. Благодаря! –

+0

Я попытался пометить все имена столбцов за один раз, и это не сработало. Вместо этого я изменил его на «описание», и он сработал. –

+0

@ user513905 - убедитесь, что вы использовали backticks ('), а не одинарные кавычки (') –

0

DESC - это зарезервированное слово и должно быть экранировано с обратными окнами.

INSERT INTO links 
    (link, name, `desc`, category) 
    VALUES 
    ('www.datavirtue.com', 'Data Virtue', 'My Website', 'Vanity') 
2

desc является MySQL reserved keyword. Оно должно быть заключено в обратных кавычках, как

INSERT INTO links (link, name, `desc`, category) VALUES ('www.datavirtue.com', 'Data Virtue', 'My Website', 'Vanity') 
+0

+1 Действительно, это –

1

"убывание" является зарезервированным словом. Используйте «описание»

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