2012-02-22 101 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