2015-04-06 61 views
0
mysql> CREATE TABLE metadata 
( 
id int, 
created_by int, 
modified_by int, 
deleted_by int, 
created_at datetime, 
modified_at datetime, 
deleted_at datetime, 
key varchar(45), 
definition_type varchar(1), 
metadata_type varchar(1), 
no_of_decimals int, 
is_required tinyint, 
min_range decimal, 
max_range decimal, 
entity varchar(10), 
sequence int, 
meta_group varchar(2), 
PRIMARY KEY (id)); 

ERROR 1064(42000):你在你的SQL语法错误;检查对应于你的MySQL服务器版本正确的语法使用近 'VARCHAR(45),definition_type VARCHAR(1),METADATA_TYPE VARCHAR(1),no_of_decimal' 在行1PHP,MySQL的自动生成CREATE TABLE语句返回错误

我不是手动完全确定如何纠正这个错误,因为这些类型的东西通常不具有在线的特定答案。我该如何解决这个错误?

+0

看起来你缺少了'created_at','modified_at'和'deleted_at'字段的数据类型。 – vikramls

回答

1

key是保留字,你应该在MySQL中使用反引号`逃避它:

`key` varchar(45) 
+0

你知道PHP是否有检查保留字的功能吗? –

+0

@Skyfactor_interns:我不认为在php中有一个内置的解决方案,但是你可以转义所有的标识符,不管它们是否保留。 – potashin

相关问题