我不知道我在这里做错了什么,但我一直试图让这个工作几个小时。我只是想让它创建一个不存在的表。我尽可能简单地制作它仍然只是返回虚假并且不会改变任何东西。请告诉我我做错了事先谢谢你。
$conn=mysql_connect('localhost:3306', 'root', '');
mysql_select_db("test",$conn);
$sql = "CREATE TABLE IF NOT EXISTS 'works' (
`autoPlace` int(11) unsigned NOT NULL auto_increment,
`element` float(255) NOT NULL,
`month` tinyint(4) NOT NULL ,
`mday` tinyint(4) NOT NULL ,
`wday` char(12) NOT NULL ,
`time` smallint(6) NOT NULL,
PRIMARY KEY (`autoPlace`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8";
$ thisKeepsReturningFalse = mysql_query($ sql); 的var_dump($ thisKeepsReturningFalse);
答案 0 :(得分:4)
当我尝试执行您的查询时出现此错误:
Incorrect column specifier for column 'element'
问题是float(255)
不是有效的声明
它必须是float(x)
x<=53
,或者您可以使用float(x,y)
- 请参阅mysql docs here
另外,正如评论中所指出的,works
周围有单引号。取下它们或用反引号替换它们。
修复这些错误后,我能够成功执行您的查询。
答案 1 :(得分:0)
“CREATE”命令不是返回值命令,因此它总是返回false(不像SELECT)。要检查命令“CREATE”是否成功,可以在执行“CREATE”命令后使用“SHOW TABLES”进行检查。
答案 2 :(得分:0)
当你创建一个浮动元素时,你必须用逗号指定小数。而且表的名称也不能用这种格式&#39;&#39;它必须在``里面。
因此,在此示例中,查询应为:
CREATE TABLE IF NOT EXISTS `works`
(
`autoPlace` int(11) unsigned NOT NULL auto_increment,
`element` float(255,0) NOT NULL,
`month` tinyint(4) NOT NULL ,
`mday` tinyint(4) NOT NULL ,
`wday` char(12) NOT NULL ,
`time` smallint(6) NOT NULL,
PRIMARY KEY (`autoPlace`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
注意浮动它是如何浮动(255,0)而不仅仅是255.你必须设置它,0是默认值