2010-03-15 5 views
0

Я пытаюсь ввести значения в таблицу базы данных, используя форму и функцию PHP. PHP кажется прекрасным, поскольку созданный SQL-код выглядит нормально, но база данных всегда вызывает ошибку. Это заявление SQL, что мой код генерируется (с произвольными значениями):Проблема с оператором SQL

INSERT INTO Iteminfo ('itemName', 'itemSeller', 'itemCategory', 'itemDescription', 'itemPrice', 'itemPostage', 'itemBegin', 'itemEnd', 'buynow', 'itemPicture') 
values ('gorillaz album', 'ben', 'music', 'new one ', '5.00', '1.00', '2010-03-15 14:59:51', '2010-03-16 14:59:51', '0', 'http://www.thefader.com/wp-content/uploads/2010/01/gorillaz-plastic-beach.jpg') 

Это бросает ошибку и, когда я использую функцию PHP для оценки запроса, а также, когда я использую PhpMyAdmin, чтобы ввести запрос вручную , Однако я не вижу в этом ничего плохого. Может кто-нибудь пролить некоторый свет на это? Все поля являются значениями VARCHAR, за исключением itemPrice и itemPostage (которые хранятся как DECIMAL (4,2)) и itemBegin и itemEnd, которые хранятся как DATETIME.

+3

Почему существуют котировки около 5,00 и 1,00? – middus

ответ

8

Попробуйте

INSERT INTO Iteminfo (itemName, itemSeller, itemCategory, itemDescription, itemPrice, itemPostage, itemBegin, itemEnd, buynow, itemPicture) 
values ('gorillaz album', 'ben', 'music', 'new one ', '5.00', '1.00', '2010-03-15 14:59:51', '2010-03-16 14:59:51', '0', 'http://www.thefader.com/wp-content/uploads/2010/01/gorillaz-plastic-beach.jpg') 

Названия столбцов не должны быть заключены в кавычки.

+0

Я обычно цитирую их в '-quotes (в MySQL). Я однажды разработал сайт на своем локальном MySQL-сервере, который был другой версией, а затем живой, на которую я перевел мой сайт. Мне потребовалось некоторое время, чтобы узнать, что одним из моих имен столбцов было ключевое слово MySQL в более новой версии ... :) –

+0

вы также можете попробовать вставить значения с помощью phpMyAdmin, а затем получить там сгенерированный SQL –

+0

@Lex Согласовано! Использование обратного вызова для исключения имен объектов, безусловно, является лучшей практикой. В основном я использую SQL Server 2005, и в одной из наших таблиц есть поле с именем Group. Мне не потребовалось много раз запускать запрос с этим полем, не скрывающимся для меня, чтобы начать бежать от всего! – Dathan

4

Не указывайте имена столбцов в указанном списке после таблицы (ITEMNAME, itemSeller и т.д.)

1

Ваши имена столбцов не должны быть строками

попробуйте удалить «» в определениях столбцов

1

В комментарии выше от middus, 5,00 и 1.00 НЕ должны указываться, поскольку они являются десятичными знаками, а не строками.

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