php - 第一次使用后 CREATE TABLE 出错?

标签 php mysql

这段代码创建第一个表没有任何问题,但随后抛出“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');

最佳答案

datetimeorder 是 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/

相关文章:

php - MySQL/Mariadb 进程在前一个进程完成之前不会运行

java - 如何将 null 发送到整数字段 - JAVA REST

php - 投票系统 - 如何在 MySQL 中存储所有投票以及如何正确统计结果

php - 比较具有相同列的两个表的相似值

php - 如何通过传参获取月记录和年记录

php - Imagecreatefromwebp() : WebP decode: fail to decode input data

php - float 编号与应有的不一样

php - 如何用GET参数转发?

javascript变量到php数组

mysql - 如何找到两个数字之间的绝对差MYSQL