PHP脚本创建表
我需要创建MySQL表。所以我运行这个脚本,但它不工作。任何想法为什么?PHP脚本创建表
<?php
$con = mysql_connect("database.dcs.aber.ac.uk","xxx","nnnnnnnnnn");
mysql_select_db("jaz",$con);
$sql = "CREATE TABLE storys
(
id int NOT NULL AUTO_INCREMET,
title TINYTEXT,
type TINYTEXT,
link TEXT,
preview TINYTEXT,
tags TINYTEXT,
text MEDIUMTEXT,
updated TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP,
created DATETIME() DEFAULT NULL,
PRIMARY KEY(id)
)";
mysql_query($sql,$con);
mysql_close($con);
?>
你的代码有绝对没有错误处理,这将显示你查询失败的原因。
$con = mysql_connect(...) or die(mysql_error());
$res = mysql_query(...) or die(mysql_error());
是几乎所有的mysql调用都应该有的最小的错误处理。
有了这个已经在地方,你必须被告知:
id int NOT NULL AUTO_INCREMET,
^---missing 'n', not a valid SQL keyword.
在前面列出的问题,您使用的功能,在数据类型定义,而“ON UPDATE”的语法是错误的。
以下是我认为你正在寻找的SQL:
CREATE TABLE IF NOT EXISTS `storys` (
`id` INT NOT NULL AUTO_INCREMENT ,
`title` TINYTEXT,
`type` TINYTEXT,
`link` TEXT,
`preview` TINYTEXT,
`tags` TINYTEXT,
`text` MEDIUMTEXT,
`updated` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
`created` DATETIME DEFAULT NULL ,
PRIMARY KEY (id)
);
thx但没有,仍然是相同的错误。 – 2012-02-22 16:25:32
您使用的是什么版本的MySQL,并且可以再次提供错误消息,因此我们可以确定它完全一样吗? – 2012-02-22 16:37:27
你的SQL语法有错误。查看与您的MySQL服务器版本相对应的手册,以在'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,'created'附近使用正确的语法。DATE – 2012-02-22 16:56:25
添加一行'回声mysql_error();'行'的mysql_query($的SQL,$ CON)以下;'然后电话如果它输出任何东西,这行通常会告诉你发生了什么错误,并且很可能是你的问题的原因 – 2012-02-22 15:57:14
这是错误: 你的SQL语法错误。 ()ON UPDATE CURRENT_TIMESTAMP,创建DATETIME()DEFAULT NULL, – 2012-02-22 16:00:17
这些行是什么:'更新TIMESTAMP()ON UPDATE CURRENT_TIMESTAMP, 创建DATETIME() DEFAULT NULL,'要做什么?你想要一个日期字段吗? – 2012-02-22 16:05:48