Php 首次使用后是否创建表错误?
这段代码创建第一个没有问题的表,但随后抛出“errorqueryingdatabase2”,这是第二个createtable查询的错误。语法看起来很正确,但我对这个比较陌生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
$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
虽然保留,实际上,由于它们通常用作列名,因此允许在向后兼容时不加引号<代码>顺序是这里的问题。我允许自由格式的日期/时间,因为这些字段用于回溯日期信息,而不是时间戳。我可以使用“排序”来代替顺序吗?日期
和时间
虽然保留,但实际上不允许使用引号,以便向后兼容,因为它们通常用作列名<代码>顺序是这里的问题。我允许自由格式的日期/时间,因为这些字段用于回溯日期信息,而不是时间戳。我可以用“排序”代替顺序吗?