MYSQL数据库建表出错!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL数据库建表出错!!!相关的知识,希望对你有一定的参考价值。

错误SQL 查询:CREATE TABLE 'bbs'(
'cardID'SMALLINT( 5 ) NOT NULL AUTO_INCREMENT ,
'poster'VARCHAR( 50 ) NOT NULL ,
'posttime'DATETIME NOT NULL ,
'title'VARCHAR( 100 ) NOT NULL ,
'content'TEXT NOT NULL ,
'repID'SMALLINT( 5 ) DEFAULT NULL ,
'lastReptime'DATETIME DEFAULT NULL ,
'repNum'INT( 11 ) DEFAULT '0',
'conNum'INT( 11 ) DEFAULT '0',
'subjectID'SMALLINT( 5 ) NOT NULL DEFAULT '1',
'IP'VARCHAR( 50 ) DEFAULT NULL ,
PRIMARY KEY ( 'cardID' )) ENGINE = MYISAM AUTO_INCREMENT =61 DEFAULT CHARSET = Latin1mysql 返回:#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 ''bbs' (
'cardID' smallint(5) NOT NULL auto_increment,
'poster' varchar(50) NOT' at line 1
请问问题出在哪?

参考技术A 首先字段名和类型间必须有个空格。
第二 字段名应该用· 就是1旁边那个键的shift版,而不是用单引号括起来 。
所以应该是这样:

CREATE TABLE `bbs`(
`cardID` SMALLINT( 5 ) NOT NULL AUTO_INCREMENT ,
`poster` VARCHAR( 50 ) NOT NULL ,
`posttime` DATETIME NOT NULL ,
`title` VARCHAR( 100 ) NOT NULL ,
`content` TEXT NOT NULL ,
`repID` SMALLINT( 5 ) DEFAULT NULL ,
`lastReptime` DATETIME DEFAULT NULL ,
`repNum` INT( 11 ) DEFAULT '0',
`conNum` INT( 11 ) DEFAULT '0',
`subjectID` SMALLINT( 5 ) NOT NULL DEFAULT '1',
`IP` VARCHAR( 50 ) DEFAULT NULL ,
PRIMARY KEY ( `cardID` )) ENGINE = MYISAM AUTO_INCREMENT =61 DEFAULT CHARSET = Latin1;

另外给些建议:
1,字段名都用小写。这样可以避免在跨平台使用时出现一些小问题。
2,如果可能涉及非英文内容 比如poster这个字段如果可能有非英文值的话,那么表的字符集最好用utf-8 在使用时会方便些。

MYSQL数据库建表出错

错误SQL 查询:CREATE TABLE 'bbs'(
'cardID'SMALLINT( 5 ) NOT NULL AUTO_INCREMENT ,
'poster'VARCHAR( 50 ) NOT NULL ,
'posttime'DATETIME NOT NULL ,
'title'VARCHAR( 100 ) NOT NULL ,
'content'TEXT NOT NULL ,
'repID'SMALLINT( 5 ) DEFAULT NULL ,
'lastReptime'DATETIME DEFAULT NULL ,
'repNum'INT( 11 ) DEFAULT '0',
'conNum'INT( 11 ) DEFAULT '0',
'subjectID'SMALLINT( 5 ) NOT NULL DEFAULT '1',
'IP'VARCHAR( 50 ) DEFAULT NULL ,
PRIMARY KEY ( 'cardID' )) ENGINE = MYISAM AUTO_INCREMENT =61 DEFAULT CHARSET = Latin1MySQL 返回:#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 ''bbs' (
'cardID' smallint(5) NOT NULL auto_increment,
'poster' varchar(50) NOT' at line 1
请问问题出在哪?

CREATE TABLE `bbs`(
`cardID`SMALLINT( 5 ) NOT NULL AUTO_INCREMENT ,
`poster`VARCHAR( 50 ) NOT NULL ,
`posttime`DATETIME NOT NULL ,
`title`VARCHAR( 100 ) NOT NULL ,
`content`TEXT NOT NULL ,
`repID`SMALLINT( 5 ) DEFAULT NULL ,
`lastReptime`DATETIME DEFAULT NULL ,
`repNum`INT( 11 ) DEFAULT 0,
`conNum`INT( 11 ) DEFAULT 0,
`subjectID`SMALLINT( 5 ) NOT NULL DEFAULT 1,
`IP`VARCHAR( 50 ) DEFAULT NULL ,
PRIMARY KEY ( `cardID` )) ENGINE = MYISAM AUTO_INCREMENT =61 DEFAULT CHARSET = Latin1

符号错了追问

哪个符号?

追答

这里的 不是 英文 逗号,而是 ESC键下的 ·~ 这个键,或 你干脆别写

参考技术A 1,die的作用是你所想的那样,输出里面的内容,并结束程序。
2,'create database my_db' ,这仅仅是一个语句,如果需要执行才能产生效果的,所以需要mysql_query()。就好比,你有一碗米,是需要煮了之后才能吃的~~
3,如果没有其他的数据库连接,这个$con是可以不需要的。如果你可能需要操作多个数据库的时候,或者已不同身份使用数据库的时候这个就是必须的了。
比如
$con = mysql_connect("localhost","peter","abc123");
$con2 = mysql_connect("localhost","peter2","abc456");
这两个用户peter,peter2是两个不一样的用户---假设peter2没有创建数据库的权限,那么mysql_query("create database my_db",$con2)。就会出错。

再举个例子。
$con = mysql_connect("localhost","peter","abc123");
$con2 = mysql_connect("localhost2","peter","abc123");

当你执行mysql_query(“SQL语句”,$con)
mysql_query(“SQL语句”,$con2)
他们产生结果的数据库服务器,就不一样了。

PHP初学者吧。多多加油!
欢迎到
提问~
我不是经常在百度~

以上是关于MYSQL数据库建表出错!!!的主要内容,如果未能解决你的问题,请参考以下文章

mysql数据库cmd命令窗建表时有时候出错按回车一直换行不执行,也不报错,无法退出,如何解决?

请问MySQL中创建表哪里出错了? CREATE TABLE emp( empno INT(4) PRIMARY KEY, name VARCHAR(5) NOT NULL,

在mysql集群中创建表时出错

mysql建表时出现错误,代码是1064

请教关于MySQL里的CREATE TABLE的问题。请问如下建表语句那里出错了,问啥执行不了呢?谢谢!

mysql建表遇到的问题汇总