2012-09-27 54 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) 
)