错误INSERT IN到MySQL表

时间:2015-05-13 06:40:01

标签: 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')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

这是我的代码Sample

$server = 'localhost';
$username = 'root';
$password = '';
$database = 'envy';

// Create Connection
$conn = new mysqli($server, $username, $password, $database);

if($conn->connect_error){
    die("Connected Successfully.".$conn->connect_error);
}

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

if($conn->query($sql)==TRUE){
    $lastid = $conn->insert_id;
    echo "New Record Created successfully. Last id: ". $lastid;
}else{
    die("Error ".$sql."<br>".$conn->error);
}

$conn->close();

作为初学者,我不知道问题出在哪里。我编写了类似教程的确切代码,但是

这是教程的链接。 http://www.w3schools.com/php/php_mysql_prepared_statements.asp

5 个答案:

答案 0 :(得分:3)

您必须在两个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')";

答案 1 :(得分:3)

尝试以下代码

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

答案 2 :(得分:2)

或者不是多次查询,为什么不插入批次:

$sql = "
    INSERT INTO MyGuests (firstname, lastname, email)
        VALUES 
        ('John', 'Doe', 'john@example.com'),
        ('Mary', 'Moe', 'mary@example.com'),
        ('Julie', 'Dooley', 'julie@example.com')
";

答案 3 :(得分:1)

当您运行更多查询时,您需要以分号结束每个查询。

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
        VALUES ('John', 'Doe', 'john@example.com');";
                                                  ^

答案 4 :(得分:0)

在每个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');

希望这适合你。