2013-11-06 3 views
-2

Я новичок в php и sql, так что не могли бы вы помочь мне, сообщив мне, как исправить эту ошибку sql. sql внизу.Что не так с этим sql?

INSERT INTO xml-group (id,groupid,name,descriptor,cust_id) 
VALUES (1,1,'other contacts','other contacts',16) 

Ошибка:

У Вас есть ошибка в вашем SQL синтаксиса; проверьте, что соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом с '-группой (id, groupid, name, descriptor, cust_id) VALUES (' 0 ',' 0 ',' mobiles ',' mobile », 1' в строке 1

Большое спасибо

+2

Какая ошибка вы получаете? – Mike

+0

У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '-группой (id, groupid, name, descriptor, cust_id). VALUES (' 0 ',' 0 ',' mobiles ',' mobile ', 1 'в строке 1 –

ответ

0

«-« Hyphen не допускается в синтаксисе SQL. использовать обратные ключи (`), чтобы избежать этого.

5

- не допускаются в некотируемом имени таблицы Используйте кавычку процитировать xml-group:.

INSERT INTO `xml-group` (id,groupid,name,descriptor,cust_id) 
VALUES (1,1,'other contacts','other contacts',16) 

Btw, в хорошо спроектированных схемы базы данных, вы можете избежать таких имена и использовать вместо этого _.

+0

спасибо, что человек отлично поработал –

+0

проверить это как принятый ответ, если он работает для вас @JonJames – mmr

2

использовать обратные кавычки Arround имя таблицы это вызывает ГРУППУ специальное ключевое слово MySQL

INSERT INTO `xml-group` (id,groupid,name,descriptor,cust_id) 
VALUES (1,1,'other contacts','other contacts',16) 
0

Кроме того, если поле ID является полем авто номер, первичный индекс и «1» уже назначен, вы получите ошибка. (То же самое с любыми другими полями, для которых требуются уникальные значения ...)

0

два варианта исправить:

  • Заменить XML-группу с xml_group
  • Включите кавычку вокруг него, такие как `XML-group`

Лично я сделал бы оба эти выше варианты, но вы можете уйти с одним.

Лучше всего обеспечить использование обратных тиков по нескольким причинам. Основная причина, по которой я использую обратные тики, такова:

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

Другие причины, но часто зависят от личных предпочтений и стандартов кодирования вы должны/могут применять на всей кодовой базы являются:

  • Вы можете легко найти весь проект для использования этой конкретной таблицы , Если, например, вы сделали SELECT user FROM users, есть хорошая вероятность, что у вас есть имена методов, переменные, комментарии и т. Д., Содержащие слово «пользователь», что затрудняет поиск всех запросов, содержащих ссылку на таблицу пользователей, среди множества ложных срабатываний. Тем не менее, если вы применяете использование обратных тиков, вам просто нужно искать «пользователей», чтобы найти все запросы, ссылающиеся на него вместе с полями (если вы не отфильтровываете запросы до того момента, когда они создаются во время выполнения, например : "SELECT` $ field` FROM `$ table`").
  • Он может помочь с ясностью и удобочитаемостью, поскольку он визуально отделяет ключевые слова от значений переменных, таких как имена полей и имена таблиц, даже если все в нижнем регистре.
Смежные вопросы