SQL CREATE TABLE错误

Ada*_*M-W 5 mysql authentication zend-framework

答案是我使用了错误的引号而不是反引号.愚蠢的语法hilighter欺骗了我.

在过去的半小时里,我一直坚持这个简单的事情,所以我想我可以尝试在这里快速回答一下.

假设我使用的是mysql 5.1,那么我的SQL语法究竟是什么不正确

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;
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

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.
Run Code Online (Sandbox Code Playgroud)

另外,有没有人有任何关于如何使用Zend_Auth完整新手的好教程?

谢谢.

jas*_*bar 5

使用反引号引用表和列标识符(如果已配置,则引用双引号).

此外,列列表末尾有逗号.

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
Run Code Online (Sandbox Code Playgroud)