Ошибка MySQL - SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1064

Я просмотрел предложенный код и не могу найти ответ, который решает проблему, поэтому я спрашиваю об этом.

Я использую MAMP v2.0.5, MySQL v5.5.9, PHP v5.3.6 (в соответствии с MAMP, v5.3.8 в соответствии с OS X) и FuelPHP v1.1, и, будучи новичком в фреймворках, я прорабатываю учебное пособие. Часть учебника требует использования "масла" для выполнения миграций для обновления проекта. Определив таблицу, миграция применяет SQL для генерации таблицы. Когда я это делаю, я получаю вышеуказанную ошибку. Посмотрев сгенерированный код, я не могу найти никаких ошибок (возможно, я упускаю что-то очевидное). Я использую PDO, а также проверил, что мой sql_mode = '', который это делает. Выполнение MySQL-запроса из командной строки и 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

1 ответ

Решение

Вы сделали опечатку:

`username` varhcar(50) NOT NULL,

должно быть:

`username` varchar(50) NOT NULL,
Другие вопросы по тегам