mysql正确的语法使用附近

时间:2014-05-04 09:08:15

标签: php mysql

我是php和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 个答案:

答案 0 :(得分:2)

它应该是CREATE TABLE而不是CREATE DATABASE。

此外,由于您没有为所有列提供默认值,因此您必须从这些列中删除default关键字。

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;

答案 1 :(得分: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;