Ошибка запроса для запроса, содержащего столбец с именем «заказ» - PullRequest
5 голосов
/ 11 ноября 2010

За свою жизнь я могу понять это

INSERT INTO category SET CategoryName = 'Hardware_1',
Category = 'HARDWARE', Status = '1', Order = '1'

 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 'Order = '1'' at line 1

CREATE TABLE `category` (
  `CategoryID` int(11) NOT NULL AUTO_INCREMENT,
  `CategoryName` varchar(255) NOT NULL,
  `Category` varchar(255) NOT NULL,
  `Status` tinyint(4) NOT NULL,
  `Order` int(11) NOT NULL,
  PRIMARY KEY (`CategoryID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Ответы [ 4 ]

8 голосов
/ 11 ноября 2010

Order - зарезервированное слово. Если вы собираетесь его использовать, заключите ордер в кавычки.

INSERT INTO category SET CategoryName = 'Hardware_1',
Category = 'HARDWARE', Status = '1', `Order` = '1'
6 голосов
/ 11 ноября 2010

Как отметил Cfreak в комментариях, ваш синтаксис действителен. Проблема заключается в использовании ключевого слова unescaped Order.

Insert Into category (CategoryName, Category, Status, `Order`)
Values ('Hardware_1', 'HARDWARE', '1', '1')
3 голосов
/ 11 ноября 2010
INSERT
INTO    category (CategoryName, Category, Status, `Order`)
VALUES  ('Hardware_1', 'HARDWARE', 1, 1)
2 голосов
/ 11 ноября 2010

заказ - зарезервированное слово в sql, вам, вероятно, нужно экранировать имя этого столбца:

INSERT INTO category SET CategoryName = 'Hardware_1', Category = 'HARDWARE', Status = '1', [Order] = '1'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...