我正在尝试使用php创建一个mySQL表,每当我运行代码时,我都会收到语法错误。字符串是
$sql = "DROP TABLE Colors;
CREATE TABLE Colors (
color VARCHAR(30) NOT NULL,
vote INT(16) NOT NULL UNSIGNED,
hex VARCHAR(10) NOT NULL,
PRIMARY KEY (color)
)";
查询行是($ conn是与服务器的连接)
$conn->query($sql)
错误是
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near
'CREATE TABLE Colors (
color VARCHAR(30) NOT NULL,
vote INT(16) NOT NULL UNSIGNED' at line 2
有谁看到我做错了什么?
答案 0 :(得分:4)
您需要一次执行一条语句。 ;
是命令行工具用作分隔符的构造,它实际上并未在MySQL协议中用于通信,因此它是一个错误。 DELIMITER
值也可以更改。
拆分它看起来像这样:
$conn->query("DROP TABLE Colors");
$conn->query("CREATE TABLE ...");
注意,我强烈鼓励您在此处进行正确的错误检查并启用异常,以便在声明失败时您了解它。
答案 1 :(得分:1)
不确定您使用的是哪个mysql库,但在PHP中,您应该在场景中使用函数multi_query。
$sql = "DROP TABLE Colors;
CREATE TABLE Colors (
color VARCHAR(30) NOT NULL,
vote INT(16) NOT NULL UNSIGNED,
hex VARCHAR(10) NOT NULL,
PRIMARY KEY (color)
)";
mysqli_multi_query($conn, $sql);