Ошибка SQL CREATE TABLE - PullRequest
       3

Ошибка SQL CREATE TABLE

4 голосов
/ 09 января 2011

Ответ был в том, что я использовал неправильные кавычки вместо обратных кавычек.Глупый синтаксис Хайлайтер обманул меня.

Я застрял на этой простой вещи (изго) за последние полчаса, поэтому я подумал, что могу попытаться получить быстрый ответ здесь.

Что именно неверно в моем синтаксисе SQL, если я использую mysql 5.1

CREATE TABLE 'users' (
    'id' INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    'username' VARCHAR(20) NOT NULL,
    'password' VARCHAR(40) NOT NULL,
    'salt' VARCHAR(40) DEFAULT NULL,
    'email' VARCHAR(80) NOT NULL,
    'created_on' INT(11) UNSIGNED NOT NULL,
    'last_login' INT(11) UNSIGNED DEFAULT NULL,
    'active' TINYINT(1) UNSIGNED DEFAULT NULL,
) 
ENGINE InnoDB;

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

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 ''users';

CREATE TABLE 'users' (
    'id' INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,' at line 3


Elapsed Time:  0 hr, 0 min, 0 sec, 0 ms.

Кроме того, есть ли у кого-нибудь хорошие уроки покак использовать Zend_Auth для полных нубов?

Спасибо.

Ответы [ 2 ]

5 голосов
/ 09 января 2011

Идентификаторы таблицы и столбца заключаются в кавычки (или двойные кавычки, если вы их настроили).

Кроме того, у вас есть запятая в конце списка столбцов.

CREATE TABLE `users` (
    `id` MEDIUMINT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `username` VARCHAR( 20 ) NOT NULL,
    `password` VARCHAR( 40 ) NOT NULL,
    `salt` VARCHAR( 40 ) DEFAULT NULL,
    `email` VARCHAR( 80 ) NOT NULL,
    `created_on` INT( 11 ) UNSIGNED NOT NULL,
    `last_login` INT( 11 ) UNSIGNED DEFAULT NULL,
    `active` TINYINT( 1 ) UNSIGNED DEFAULT NULL
) ENGINE InnoDB
2 голосов
/ 09 января 2011

Вы используете одинарные кавычки вместо обратных кавычек для имен таблиц и полей, что неправильно.Также должен быть знак равенства между ENGINE и InnoDB.

Вот фиксированный SQL:

CREATE TABLE `users` (
    `id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `username` VARCHAR(20) NOT NULL,
    `password` VARCHAR(40) NOT NULL,
    `salt` VARCHAR(40) DEFAULT NULL,
    `email` VARCHAR(80) NOT NULL,
    `created_on` INT(11) UNSIGNED NOT NULL,
    `last_login` INT(11) UNSIGNED DEFAULT NULL,
    `active` TINYINT(1) UNSIGNED DEFAULT NULL
) 
ENGINE = InnoDB;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...