2014-05-04 41 views
0

我很新的PHP和MySQL!所以我需要你幫忙!mysql正確的語法使用附近

我想做一個登錄/註冊頁面,我找到了一個教程。但每次我想給table.sql導入到數據庫中,我得到了以下錯誤:

#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 '(`id` int (5) NOT 
NULL auto_increment, `usr` varchar (32) NOT NULL defaul' at line 4 

這是表的代碼:

-- 
-- Table structure for table `tz_members` 
-- 
CREATE DATABASE IF NOT EXISTS `tz_members` (
`id` int(5) NOT NULL AUTO_INCREMENT , 
`usr` varchar(32) NOT NULL default, 
`pass` varchar(32) NOT NULL default, 
`email` varchar(255) NOT NULL default, 
`regIP` varchar(15) NOT NULL default, 
`dt` datetime NOT NULL default '0000-00-00 00:00:00', 
PRIMARY KEY (`id`) , 
UNIQUE KEY (`usr`) 
) ENGINE = MYISAM DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci AUTO_INCREMENT =6; 

我希望你能幫幫我! 謝謝你們!

回答

2

首次創建表沒有創建數據庫

現在,語法上有很多誤區像

usr` varchar(32) NOT NULL default, 

當你指定默認你需要添加例如值你已經做了

`dt` datetime NOT NULL default '0000-00-00 00:00:00', 

以下是正確的語法

CREATE table IF NOT EXISTS `tz_members` (
`id` int(5) NOT NULL AUTO_INCREMENT , 
`usr` varchar(32) NOT NULL , 
`pass` varchar(32) NOT NULL , 
`email` varchar(255) NOT NULL , 
`regIP` varchar(15) NOT NULL , 
`dt` datetime NOT NULL default '0000-00-00 00:00:00', 
PRIMARY KEY (`id`) , 
UNIQUE KEY (`usr`) 
) ENGINE MYISAM DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci AUTO_INCREMENT =6; 
+0

非常感謝!你救了我的一天! – user2871857

2

它應該是CREATE TABLE而不是CREATE DATABASE。

此外,由於您未提供所有列的默認值,因此您必須從這些列中移除默認關鍵字。

CREATE DATABASE IF NOT EXISTS `tz_members` (
`id` int(5) NOT NULL AUTO_INCREMENT , 
`usr` varchar(32) NOT NULL, 
`pass` varchar(32) NOT NULL, 
`email` varchar(255) NOT NULL, 
`regIP` varchar(15) NOT NULL, 
`dt` datetime NOT NULL default '0000-00-00 00:00:00', 
PRIMARY KEY (`id`) , 
UNIQUE KEY (`usr`) 
) ENGINE = MYISAM DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci AUTO_INCREMENT =6; 
+0

在創建表之前執行命令'USE Database_Name'。這裏Database_Name是您的MySQL服務器上現有數據庫的名稱 –

+0

感謝您的快速回復! 現在還有其他錯誤: #1064 - 你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在「pass」varchar(32)附近使用正確的語法在第6行NOT NULL默認,「email' varchar(255)NOT NULL defa' – user2871857