2010-03-16 2 views
0

Вот мой стол:Что не так в этом SQL-запросе? (Или, возможно, почему не для MySQL как шестого поля?)

id    int(11) 
name    varchar(255) 
description  text  
highest_bidder int(11) 
value   varchar(255) 
group   int(11) 

я изначально не было поле группы в там, но добавил его позже.

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

INSERT INTO name_of_table_removed 
(id,name,description,highest_bidder,group,value) 
VALUES 
(2,"...","...",0,3,"$45.99") 

И я получаю ошибку:

У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «group, value». VALUES (2, «...», «...», 0,3, «$ 45,99») »в строке 1

Что мне не хватает?

+0

Очень плохой подход с полем значений. это должен быть тип DECIMAL, и цена должна быть сохранена без знака $ –

+0

@Col: Я задавался вопросом, когда кто-то критиковал бы меня за это - есть очень веская причина для этого. Цена может потенциально потребовать дополнительной информации, такой как «45 долларов США + налог» или кто знает - может быть, другая валюта, например, £ или ¥. По этой причине имеет смысл хранить как строку, а не десятичную. –

+0

это не имеет значения. нормализовать его в режиме базы данных. Как налог, так и валюта должны храниться отдельно. –

ответ

3

Группа является зарезервированным словом. Выйдите из поля как:

`group` 

.. Или переименуйте поле.

+0

Ах! Я такой идиот! Это также объясняет, почему phpMyAdmin будет работать с ним, но мой код не смог. –

+0

Yep - инструменты, такие как phpMyAdmin, избегают почти всего, на всякий случай. – Chaos

+0

Я заметил, что это всегда так ... теперь я знаю почему. Кроме того, даже SO выбрал проблему - посмотрите выше, и вы увидите, что «группа» выделена как зарезервированное слово. –

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