2011-01-09 20 views
4

回答は、私がバッククォートの代わりに誤った引用符を使用していたことでした。愚かな構文hilighterが私を騙しました。SQL CREATE TABLEエラー

私はこの1つのシンプルな(ish)ものを最後の1/2時間貼り付けていたので、ここで簡単な答えを得ようと思っていたかもしれません。また

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. 

、誰もが方法についての良いチュートリアルを持っていない:私は私が手にエラーがあるの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; 

を使用していますと仮定すると、私のSQL構文の誤りがあります正確に何

完全なnoobsのZend_Authを使用するには?

ありがとうございました。

+0

エラーは何ですか? –

+0

あなたが私に尋ねるならば、バックティックを全く使わない理由 –

+0

@ f00:いくつかの頑固な人々は、識別子のために特定のキーワードを使用することを主張しています。 – BoltClock

答えて

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 
+0

あなたは 'ユーザ名の後に:-)がありません。 – diagonalbatman

+0

@Andy、ありがとうございました。 – jasonbar

+0

とにかく何人かの代理人を追加したプロブレムはありません – diagonalbatman

2

テーブルとフィールド名にバッククォートの代わりにシングルクォートを使用していますが、これは間違っています。 ENGINEInnoDBの間にも等号があるはずです。ここで

は、固定された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; 
関連する問題