私は提案されたコードを調べましたが、問題を解決する回答を見つけることができないため、尋ねています。MySQLエラー - SQLSTATE [42000]:構文エラーまたはアクセス違反:1064
私は、MAMP v2.0.5、MySQL v5.5.9、PHP v5.3.6(MAMP、OS Xによるv5.3.8による)とFuelPHP v1.1を使用しています。フレームワークの新機能私は、チュートリアル。チュートリアルの一部には、プロジェクトを更新するための移行を実行するための「オイル」の使用が必要です。表を定義すると、移行によってSQLが適用されて表が生成されます。私がそうすると、私は上記のエラーを取得します。生成されたコードを見て、私は何かエラーを見つけることができません(多分私は何かが分かりません)。私はPDOを使用しており、私のsql_mode = ''
もチェックしています。コマンドラインからphpMyAdminを実行すると、これが確認されます。私はこれがMySQLエラーであり、FuelPHP/oilの問題ではないと思います。誰か提案はありますか?
生成されたSQL:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varhcar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`group` int(11) NOT NULL,
`email` varchar(255) NOT NULL,
`last_login` int(11) NOT NULL,
`login_hash` varchar(255) NOT NULL,
`profile_fields` text NOT NULL,
`created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL,
PRIMARY KEY `id` (`id`)
) DEFAULT CHARACTER SET utf8;
エラー:
bash:blog me$ oil refine migrate
Error - SQLSTATE[42000]: Syntax error or access violation: 1064 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 'varhcar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`group` int(11) NOT NU' at line 3 with query: "CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varhcar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`group` int(11) NOT NULL,
`email` varchar(255) NOT NULL,
`last_login` int(11) NOT NULL,
`login_hash` varchar(255) NOT NULL,
`profile_fields` text NOT NULL,
`created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL,
PRIMARY KEY `id` (`id`)
) DEFAULT CHARACTER SET utf8;" in COREPATH/classes/database/pdo/connection.php on line 137
"group"は予約語で、これを "user_group"に変更したことに気がつきましたが、私はまだ同じエラーが発生します。 –
MySQLは修正を必要としない点もあります.MySQLは「自動修正」します。 'PRIMARY KEY id(id)'は実際には 'PRIMARY KEY(id)'と同じです。主キーの名前は選択できません。これはデフォルトでは 'PRIMARY'と呼ばれています。 –