2013-10-25 4 views
-1

Создание базы данных для класса в PHP и MYSQL. Запуская ошибку при создании базы данных, phpMyAdmin дает мне бесполезное сообщение об ошибке. (Программное обеспечение, которое дает лучшее сообщение об ошибке было бы удивительным, BTW)MySQL создает ошибку таблицы на phpMyAdmin

PHPMYADMIN ошибка:

#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 'CREATE TABLE customers (customer_id INT UNSIGNED NOT NULL auto increment, fir' at line 1

USE isys288_gottfrk 
CREATE TABLE customers (customer_id INT UNSIGNED NOT NULL 
auto increment, first_name carchar(20) NOT NULL, last_name VARCHAR(40) NOT NULL, 
PRIMARY KEY (customer_id), INDEX full_name (last_name, first_name)) engine = 
innodb; 
+0

Вы забыли точку с запятой после 'USE isys288_gottfrk'. Замените 'carchar (20)' после 'first_name' на' varchar (20) ' – Sal00m

ответ

0

Существовали несколько ошибок в коде.

USE isys288_gottfrk; 
CREATE TABLE customers 
( 
    customer_id INT UNSIGNED NOT NULL auto_increment, 
    first_name varchar(20) NOT NULL, 
    last_name VARCHAR(40) NOT NULL, 
    PRIMARY KEY (customer_id), 
    INDEX full_name (last_name, first_name) 
) engine = innodb; 

Я предлагаю вам использовать инструмент DB как MySQL Workbench для создания таблиц. Затем вы можете сразу увидеть проблемы.

+0

Спасибо, и хотя я не могу напрямую подключиться к моей базе данных с помощью Workbench :(, это редактор скриптов waaaaaaay лучше, чем phpMyAdmin. – Spitfire19

0

Juergen d отредактировал ваш вопрос для форматирования, это, возможно, и помогло вам: ваш первоначальный оператор был в одной строке, поэтому ошибка была отмечена в этой строке. Если вы отредактировали его на нескольких строках (например, в своем вопросе или, лучше, в его ответе), вы, возможно, получили бы лучшее сообщение, например. один, что флаги, что строка carchar(20) содержит проблему (это даже лучше, так он его в ответ, но он правильно использует varchar(20), не маркировки проблемы)

Да, было бы неплохо, если сообщение об ошибке будет немедленно помечать проблему, но иногда это уже лучше, когда ввод отформатирован более удобным для человека способом. Я проверил то же самое с многострочным заявлением, MySQL заявил

ERROR 1064 (42000): 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 'carchar(20) 
0

Попробуйте это:

CREATE TABLE customers (
customer_id INT UNSIGNED NOT NULL AUTO_INCREMENT 
, first_name VARCHAR (20) NOT NULL 
, last_name VARCHAR (40) NOT NULL 
, PRIMARY KEY (customer_id) 
, INDEX full_name (last_name, first_name) 
) ENGINE = INNODB ; 

Вы можете использовать некоторые GUI клиентов, как SQLyog для этого.

Смежные вопросы