2013-12-24 3 views
0

В чем проблема с приведенным ниже кодом, он возвращается с сообщением об ошибке «Сообщенная ошибка: у вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильной синтаксис использовать вблизи 'user BIGINT (20) NOT NULL, тип перечисления (' е ' 'с') NOT NULL, eidcid BIGINT (20) N' в строке 1"Ошибка синтаксиса MySQL для версии сервера

Может кто-то пожалуйста, помогите ???

$sqla[] = "CREATE TABLE `" . $GLOBALS['TBL_PREFIX'] . "accesscache` (`cacheid` INT NOT NULL AUTO_INCREMENT `user` bigint(20) NOT NULL, type enum('e','c') NOT NULL, `eidcid` bigint(20) NOT NULL, `result` enum('nok','readonly','ok') NOT NULL, `timestamp_last_change` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY `cacheid` (`cacheid`), KEY `user` (`user`), KEY `type` (`type`), KEY `eidcid` (`eidcid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Interleave Access cache table';"; 
+0

Добавить в ',' 'между AUTO_INCREMENT' и' user'. –

ответ

1

Вам не хватает запятой после AUTO_INCREMENT.

$sqla[] = "CREATE TABLE `" . $GLOBALS['TBL_PREFIX'] . "accesscache` (`cacheid` INT NOT NULL AUTO_INCREMENT, `user` bigint(20) NOT NULL, type enum('e','c') NOT NULL, `eidcid` bigint(20) NOT NULL, `result` enum('nok','readonly','ok') NOT NULL, `timestamp_last_change` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY `cacheid` (`cacheid`), KEY `user` (`user`), KEY `type` (`type`), KEY `eidcid` (`eidcid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Interleave Access cache table';"; 
0

Попробуйте этот запрос. Вы забыли поставить , после AUTOINCREMENT

$sqla[] = "CREATE TABLE `" . $GLOBALS['TBL_PREFIX'] . "accesscache` (`cacheid` INT NOT NULL AUTO_INCREMENT, `user` bigint(20) NOT NULL, type enum('e','c') NOT NULL, `eidcid` bigint(20) NOT NULL, `result` enum('nok','readonly','ok') NOT NULL, `timestamp_last_change` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY `cacheid` (`cacheid`), KEY `user` (`user`), KEY `type` (`type`), KEY `eidcid` (`eidcid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Interleave Access cache table';"; 
1

Были 2 ошибки, я буду показывать на работавшего сценарий -

CREATE TABLE `accesscache` (
    `cacheid` int NOT NULL AUTO_INCREMENT, -- need ',' after cacheid 
    `user` bigint(20) NOT NULL, 
    type enum ('e', 'c') NOT NULL, 
    `eidcid` bigint(20) NOT NULL, 
    `result` enum ('nok', 'readonly', 'ok') NOT NULL, 
    `timestamp_last_change` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    PRIMARY KEY (`cacheid`), -- PK always named as PRIMARY 
    KEY `user` (`user`), 
    KEY `type` (`type`), 
    KEY `eidcid` (`eidcid`) 
) 
ENGINE = INNODB 
DEFAULT charset = utf8 
COMMENT = 'Interleave Access cache table' 
Смежные вопросы