【问题标题】:Insert multiple data with PHP [duplicate]用PHP插入多个数据[重复]
【发布时间】:2020-05-16 04:54:46
【问题描述】:

我正在尝试在一个表中插入多个数据,但是我收到一条错误消息:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'INSERT INTO author (firstname, lastname) VALUES ('Rasmus', 'Lerdorf')INSERT INT' 附近使用正确的语法

方法如下:

$sql = "INSERT INTO author (firstname, lastname)  VALUES ('Roal', 'Dahl')";
$sql .= "INSERT INTO author (firstname, lastname)  VALUES ('Rasmus', 'Lerdorf')";
$sql .= "INSERT INTO author (firstname, lastname)  VALUES ('Jane', 'Doe')";

我需要为此创建一个 for 循环吗?这怎么可能?

【问题讨论】:

  • 在两个查询中删除 . 这里 $sql .=
  • 除非您使用 mysqli_multi_query 或 PDO::ATTR_EMULATE_PREPARES,否则您不能在一个查询中使用多个插入。把它们分开。

标签: php mysql


【解决方案1】:

你可以这样做:

  $sql = INSERT INTO author ( firstname, lastname) VALUES ('Roal', 'Dahl'), ('Rasmus', 'Lerdorf'), ('Jane', 'Doe');

【讨论】:

    【解决方案2】:

    一般来说,mysqli 和 PDO 不能在一个查询中执行多个语句。有像 mysqli_multi_query 这样的替代品,但这并不是您真正需要的。

    您的查询可以通过在VALUES 之后附加额外的部分来添加多行,如下所示:

    $sql = "INSERT INTO author (firstname, lastname)  VALUES ";
    $sql .= "('Roal', 'Dahl'), ('Rasmus', 'Lerdorf'), ('Jane', 'Doe')";
    

    【讨论】:

      【解决方案3】:

      您可以使用两个选项:

      mysqli_multi_query

      $sql = "INSERT INTO author (firstname, lastname)  VALUES ('Roal', 'Dahl');";
      $sql .= "INSERT INTO author (firstname, lastname)  VALUES ('Rasmus', 'Lerdorf');";
      $sql .= "INSERT INTO author (firstname, lastname)  VALUES ('Jane', 'Doe');";
      if(!$mysqli->multi_query($sql)){
      echo 'Error query:'. $mysqli->error . '.';
      }else{
      //do any operation
      }
      

      或使用如下查询:

      $sql = INSERT INTO author ( firstname, lastname) VALUES ('Roal', 'Dahl'), ('Rasmus', 'Lerdorf'), ('Jane', 'Doe');
      if(!$mysqli->query($sql)){
      echo 'Error query:'. $mysqli->error . '.';
      }else{
      //do any operation
      }
      

      用你的连接更改$mysqli

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-02-24
        • 2018-05-03
        • 1970-01-01
        • 2014-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多