Php 首次使用后是否创建表错误?

Php 首次使用后是否创建表错误?,php,mysql,Php,Mysql,这段代码创建第一个没有问题的表,但随后抛出“errorqueryingdatabase2”,这是第二个createtable查询的错误。语法看起来很正确,但我对这个比较陌生 $dbc = mysqli_connect("localhost", "$dbuser", "$dbpass") or die('Error connecting to MySQL server.'); mysqli_select_db($dbc, "autoim9_codeaic"); $content = "CREAT

这段代码创建第一个没有问题的表,但随后抛出“errorqueryingdatabase2”,这是第二个createtable查询的错误。语法看起来很正确,但我对这个比较陌生

$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');

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)
,则可能是做错了。并且应该相应地使用。

日期
时间
,和
顺序
是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)
,则可能是做错了。并且应该相应地使用。

顺序”是一个保留字,因此需要在后面加上记号(或者最好选择稍微不同的字段名)

因此,这实际上是SQL中的一个错误。

“Order”是一个保留字,因此需要在后面加上记号(或者最好选择稍微不同的字段名)


因此,这实际上是SQL中的一个错误。

如果出现错误,您可以通过检查
mysqli\u错误($dbc)
自己找到这些东西。如果出现错误,您可以通过检查
mysqli\u错误($dbc)
自己找到这些东西。
DATE
TIME
虽然保留,实际上,由于它们通常用作列名,因此允许在向后兼容时不加引号<代码>顺序是这里的问题。我允许自由格式的日期/时间,因为这些字段用于回溯日期信息,而不是时间戳。我可以使用“排序”来代替顺序吗?
日期
时间
虽然保留,但实际上不允许使用引号,以便向后兼容,因为它们通常用作列名<代码>顺序是这里的问题。我允许自由格式的日期/时间,因为这些字段用于回溯日期信息,而不是时间戳。我可以用“排序”代替顺序吗?