我从mysql_error()中得到以下信息:
你的SQL语法有错误;查看对应MySQL服务器版本的手册,以获得正确的语法来使用near -->'assets' ('assetid' INT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY('assetid'<——at line 1
我也试过这样做:
'assets' ('assetid' INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
…但运气不好。mysql的版本是5.0.7.
编辑:
实际上,我在放(')之前先试过没有(')。代码是动态的,但这些是示例:
CREATE TABLE 'assets' (
'assetid' INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY('assetid'),
'rfid' VARCHAR( 128 ) ,
'createddate' DATE ,
'modifieddate' DATE ,
'curlocid' INT( 11 ) ,
'type' VARCHAR( 128 ) ,
'brand' VARCHAR( 128 ) ,
'name' VARCHAR( 128 ) ,
'condition' VARCHAR( 128 )
);
编辑2:
刚才我试着用反引号(')改变所有的单引号(')..其他错误发生…
不能创建表'mydb '。Assets ' (errno: 121)
这是好还是坏?
编辑3:
我试着用不同的表名创建它,你猜怎么着?它的工作原理!天哪,为什么我不能创建表名"资产"??是因为之前的手术还有剩余吗?如果是的话,我该怎么清洗呢?如果我说我通过删除它的文件来删除表呢?(from,myd,myi)(不是drop它,由于懒惰)..我怎么修理它?
查看您的所有代码将会很有帮助。
根据我所看到的,你需要消除所有的蜱虫。这应该可以工作:
create table assets (
assetid int unsigned not null auto_increment primary key
);
我不知道这里发生了什么但是我复制粘贴了你的代码,还是出现了同样的错误所以我逐行复制仍然在应该出现的地方出现了断行所以我把它逐行打印出来虽然有点折腾但我还是得到了除了"condition "这个词可能是个保留词但我在这里把它缩短了这就是我得到的
create table assets (
assetid int unsigned not null auto_increment,
primary key(assetid),
rfid varchar(128),
createddate DATE,
modifieddate DATE,
curlocid INT(11),
type varchar(128),
brand varchar(128),
name varchar(128),
cond varchar(128)
);
我认为在引用表或列名时需要使用反引号(')而不是单引号(')。
这个问题很老了,但我只是想告诉如何解决这个问题的答案。万一有人偶然发现……在本例中,使用的是默认ENGINE。直到现在我才注意到,我使用的服务器(Z-WAMP)将INNODB配置为默认引擎。在我把它改成MyISAM之后,这是mysql的默认引擎,一切都工作得很完美!!不过,还是要感谢那些帮助我的人。
在这个文件——> my.cnf中,修改这一行:
default-storage-engine=MyISAM