这段代码创建第一个表没有任何问题,但随后抛出“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');
最佳答案
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并应相应地使用。
关于php - 第一次使用后 CREATE TABLE 出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10826274/