Php 插入MySQL表时出错
从w3schools学习使用MYSQL的PHP。一切都很顺利,但当我试图在表中输入多个值时,它显示了以下错误Php 插入MySQL表时出错,php,mysql,Php,Mysql,从w3schools学习使用MYSQL的PHP。一切都很顺利,但当我试图在表中输入多个值时,它显示了以下错误 Error INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Mary', 'Moe', 'mary@example.com')INSER
Error INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Mary', 'Moe', 'mary@example.com')INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Julie', 'Dooley', 'julie@example.com')
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 'INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Mary', 'Moe', 'm' at line 2
这是我的代码示例
$server='localhost';
$username='root';
$password='';
$database='envive';
//创建连接
$conn=newmysqli($server、$username、$password、$database);
如果($conn->connect\u错误){
die(“连接成功”。$conn->connect\U错误);
}
$sql=“插入MyGuests(名字、姓氏、电子邮件)
价值观('John','Doe','john@example.com')";
$sql.=“插入MyGuests(名字、姓氏、电子邮件)
价值观('Mary','Moe','mary@example.com')";
$sql.=“插入MyGuests(名字、姓氏、电子邮件)
价值观('Julie','Dooley','julie@example.com')";
if($conn->query($sql)==TRUE){
$lastid=$conn->insert\u id;
echo“已成功创建新记录。最后一个id:.$lastid;
}否则{
死(“错误”。$sql。“$conn->Error”);
}
$conn->close();
作为初学者,我不知道问题出在哪里。我编写了与教程一样的代码,但是
这里是教程的链接 您必须添加一个
代码>在两个sql语句之间:
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', 'mary@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', 'julie@example.com')";
运行更多查询时,需要以分号结束每个查询
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com');";
^
尝试以下代码
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
$sql .= ",('Mary', 'Moe', 'mary@example.com')";
$sql .= ",('Julie', 'Dooley', 'julie@example.com')";
在每个insert语句后加上分号(;),因为一次要执行多个语句
INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com');
INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Mary', 'Moe', 'mary@example.com');
INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Julie', 'Dooley', 'julie@example.com');
希望这对您有用。或者与其进行多个查询,不如插入批次:
$sql = "
INSERT INTO MyGuests (firstname, lastname, email)
VALUES
('John', 'Doe', 'john@example.com'),
('Mary', 'Moe', 'mary@example.com'),
('Julie', 'Dooley', 'julie@example.com')
";
对于此查询,您需要使用multi\u query()
。除非支持多查询,否则OP应采用此方法。这将是一个更好的解决方案。@RavindeReddy这不是多查询。这是批处理操作,比多重查询快得多。阅读本文了解更多详细信息,不要使用w3shool,因为它很危险bad@Dagon不要反应过度。W3schools不是很糟糕。如果不支持多查询,则可能会失败。
$sql = "
INSERT INTO MyGuests (firstname, lastname, email)
VALUES
('John', 'Doe', 'john@example.com'),
('Mary', 'Moe', 'mary@example.com'),
('Julie', 'Dooley', 'julie@example.com')
";