Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 插入MySQL表时出错_Php_Mysql - Fatal编程技术网

Php 插入MySQL表时出错

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

从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')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')
";