我正在尝试创建以下表格。查询在phpmyadmin中有效,但在php脚本中无效。请指出我的代码中的错误。谢谢
$sql = "CREATE TABLE IF NOT EXISTS `portal` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`message_sid` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`number` varchar(255) NOT NULL,
`message` text NOT NULL,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`status` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1";
if (mysqli_query($conn, $sql)) {
echo "Table portal created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}
我收到此错误:
You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version for the
right syntax to use near '`id` int(255) NOT NULL AUTO_INCREMENT,
`message_sid` varchar(255) NOT NULL' at line 2
答案 0 :(得分:0)
我通过检查表是否存在于php中来完成此操作,如果不存在则创建一个新表 创建表最好是使用phpmyadmin导出一个已经存在的表,然后将其用作查询语法
答案 1 :(得分:-1)
从表名和行名中删除单引号
如果您将id设为主键自动递增,请不要使其不为null,这会导致错误。
我不确定为什么要投反对票。
CREATE TABLE IF NOT EXISTS portal (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
message_id VARCHAR(30) NOT NULL,
name VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
number VARCHAR(50) NOT NULL,
message text NOT NULL,
created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
status VARCHAR(50) NOT NULL )ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
这将起作用