这段代码创建了第一个没有问题的表,但随后抛出了“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');
答案 0 :(得分: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)
,那么您可能做错了。 Date and time fields have their own data types并且应该相应地使用。
答案 1 :(得分:1)
“订单”是一个保留字,因此您需要将其括在后面(或者最好选择稍微不同的字段名称)。
所以它实际上是SQL中的一个错误。