0

这段代码毫无问题地创建了第一个表,但随后抛出“Error Querying Database 2”,这是第二个 CREATE TABLE 查询的错误。语法看起来不错,但我对此比较陌生......

$dbc = mysqli_connect("localhost", "$dbuser", "$dbpass") or die('Error connecting to MySQL server.');
mysqli_select_db($dbc, "autoim9_codeaic");

$content = "CREATE TABLE content (id int NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), page varchar(255), html longtext)";
mysqli_query($dbc, $content) or die('Error querying database1');

$events = "CREATE TABLE events (id int NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name varchar(255), date varchar(255), time varchar(255), location varchar(255), html longtext, img varchar(255), link varchar(255), target varchar(255), order int)";
mysqli_query($dbc, $events) or die('Error querying database2');


$spotlight = "CREATE TABLE spotlight (id int NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), title varchar(255), img varchar(255), link varchar(255), target varchar(255), order int)";
mysqli_query($dbc, $spotlight) or die('Error querying database3');
4

2 回答 2

2

date, time, 和order是 MySQL 中的保留关键字。您要么需要更改它们的名称,要么使用反引号 (`) 来转义它们。

$events = "CREATE TABLE events (id int NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name varchar(255), `date` varchar(255), `time` varchar(255), location varchar(255), html longtext, img varchar(255), link varchar(255), target varchar(255), `order` int)";

仅供参考,如果你在varchar(255)每个领域都使用你可能做错了。日期和时间字段有自己的数据类型,应该相应地使用。

于 2012-05-31T01:14:19.260 回答
1

“订单”是一个保留字,因此您需要用反引号括起来(或者最好选择一个稍微不同的字段名称)。

所以这实际上是你的 SQL 中的一个错误。

于 2012-05-31T01:15:51.527 回答