2012-09-27 55 views
-5

php mysql表創建不工作! 這段代碼爲什麼不起作用?php mysql表創建不工作

<?php 
$con = mysql_connect("localhost","root",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db('allheight', $con); 

$sql = 'CREATE TABLE Posts 
(
PostID int NOT NULL AUTO_INCREMENT, 
Title varchar(15), 
Picture varchar(2000), 
Description text, 
Height text 
)'; 


mysql_query($sql, $con); 
mysql_close($con); 
?> 

這裏的問題是,代碼似乎無法創建表「職位」。

+2

不MySQL的返回錯誤消息是什麼? – Sirko

+2

你不應該再使用'mysql_'函數了。另外,請查閱手冊,瞭解如何從mysql查詢中獲取錯誤消息。並做一些基本的調試,什麼時候發生,並給我們這些信息。 – Nanne

+0

嘗試使用MySQL控制檯或phpMyAdmin中的SQL語句 - 並讓我們知道您得到的錯誤。與你的陳述相反,MySQL的CREATE TABLE確實工作得很好,並且已經做了很多年了。 – halfer

回答

3

如果你期待已久了MySQL的錯誤信息,那將是很明顯的:

1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

因此改變你的SQL

CREATE TABLE Posts (
PostID int NOT NULL AUTO_INCREMENT, 
Title varchar(15), 
Picture varchar(2000), 
Description text, 
Height text, 
PRIMARY KEY(PostId) 
) 
+0

或者只是在一個字符串中做:'PostId serial primary key'。 – Peon

+0

oops我的壞。多虧了你的傢伙,它沒有工作,因爲我無法將postID聲明爲主鍵(這是我想要做的)。非常感謝。對不起,我很小心。 –

1

這個SQL查詢產生以下錯誤:

表格定義錯誤;只能有一個自動列,並且必須將其定義爲鍵。

添加到您的查詢的末尾:

CREATE TABLE Posts 
(
PostID int NOT NULL AUTO_INCREMENT, 
Title varchar(15), 
Picture varchar(2000), 
Description text, 
Height text, 
KEY (PostID) 
)