MySQL Erreur SQLSTATE [42000]: erreur de Syntaxe ou de violation d'accès: 1064

J'ai regardé à travers la suggestion de code et ne peut pas trouver une réponse qui résout le problème donc, je demande à l'écart.

J'utilise MAMP v2.0.5, MySQL v5.5.9, PHP v5.3.6 (selon MAMP, v5.3.8 selon OS X) et FuelPHP v1.1, et étant nouveau pour les cadres, je travaille par le biais d'un tutoriel. Une partie de ce tutoriel nécessite l'utilisation d'huile d'effectuer des migrations de mettre à jour le projet. Après avoir défini une table, la migration s'applique le SQL pour générer la table. Quand je le fais, j'obtiens l'erreur ci-dessus. Après avoir regardé à travers le code généré, je ne peux pas trouver toutes les erreurs (peut-être que je suis absent quelque chose d'évident). J'utilise PDO et ont également vérifié que mon sql_mode = '', à qui il ne. L'exécution d'une requête MySQL à partir de la ligne de commande et phpMyAdmin confirme ce. Je pense que c'est une erreur MySQL et non pas un problème avec FuelPHP/huile. Quelqu'un a des suggestions?

Le SQL généré:

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;

L'erreur:

    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
  • Bien que j'ai juste remarqué que le "groupe" est un mot réservé, ayant changé de ce "user_group" j'obtiens toujours la même erreur.
  • Il y a aussi un point qui n'a pas besoin de fixation comme MySQL "auto-corrige" il. PRIMARY KEY id (id) est vraiment la même que PRIMARY KEY (id). Vous ne pouvez pas sélectionner un nom pour la Clé Primaire. Il est appelé PRIMARY, par défaut.
InformationsquelleAutor Ashley Bye | 2012-02-28