2012-02-22 157 views
0

我需要创建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); 

?> 
+0

添加一行'回声mysql_error();'行'的mysql_query($的SQL,$ CON)以下;'然后电话如果它输出任何东西,这行通常会告诉你发生了什么错误,并且很可能是你的问题的原因 – 2012-02-22 15:57:14

+0

这是错误: 你的SQL语法错误。 ()ON UPDATE CURRENT_TIMESTAMP,创建DATETIME()DEFAULT NULL, – 2012-02-22 16:00:17

+0

这些行是什么:'更新TIMESTAMP()ON UPDATE CURRENT_TIMESTAMP, 创建DATETIME() DEFAULT NULL,'要做什么?你想要一个日期字段吗? – 2012-02-22 16:05:48

回答

4

你的代码有绝对没有错误处理,这将显示你查询失败的原因。

$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. 
0

在前面列出的问题,您使用的功能,在数据类型定义,而“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) 
); 
+0

thx但没有,仍然是相同的错误。 – 2012-02-22 16:25:32

+0

您使用的是什么版本的MySQL,并且可以再次提供错误消息,因此我们可以确定它完全一样吗? – 2012-02-22 16:37:27

+0

你的SQL语法有错误。查看与您的MySQL服务器版本相对应的手册,以在'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,'created'附近使用正确的语法。DATE – 2012-02-22 16:56:25