首页博客网络编程
使MySQL一次插入多行:节省时间和代码行
摘要 MySQL 语句允许您使用一个查询插入多行。这将使您的网站更快。 此插入过程有不同的方法,具体取决于您与 MySQL 的连接类型。无论您选择哪种方式,使用正确的MySQL插入语法都至关重要。

正如您学会通过插入和删除行来更新数据库表一样,这些过程似乎很容易。但是,当您有大量数据时,知道如何让MySQL一次向数据表插入多行会很方便。

您可以通过使用正确的语句并遵循语法要求来执行此操作。当然,首先您必须建立与数据库的连接并至少创建一个表。

在本教程中,我们将解释如何在您之前创建的表中插入多行 MySQL。无论您使用 MySQLi 还是 POD,都允许添加多个记录。

内容

MySQL插入多行:主要提示

  • 通过使用 PHP MySQL 插入语句,您可以同时插入多条记录。

  • 如果要使用单个查询而不是多个查询有效地发送多个记录,则此方法可能很有用。这将帮助您的网站运行得更快。

  • 您必须确保使用正确的MySQL插入语法。

插入多行的三种方法

下面的MySQL插入示例显示了如何在使用不同类型的连接时将三条记录插入名为user的表中。让我们从使用 MySQLi 面向对象连接插入多行的方法开始:

复制

<?php
  $host = 'host';
  $user = 'user';
  $pass = 'pass';
  $db = 'db';  // Create connection
  $conn = new mysqli($host, $user, $pass, $dbname);  // Check connection
  if ($conn->connect_error) {    die("Connection failed: " . $conn->connect_error);
  }
  $sql = "INSERT INTO users (username, password, email) VALUES ('Johny', 'Dawkins', 'johny@example.com');";
  $sql .= "INSERT INTO users (username, password, email) VALUES ('Margaret', 'Johnson', 'marg@example.com');";
  $sql .= "INSERT INTO users (username, password, email) VALUES ('Juliete', 'Doodley', 'juliete@example.com');";  if ($conn->multi_query($sql) === TRUE) {    echo "New records created successfully";
  } else { 
    echo "Error: " . $sql . "<br>" . $conn->error;
  }
  $conn->close();  
?>

注意:每个 SQL 语句都必须用分号 (;) 分隔。

现在,让我们来看看如何使用MySQLi过程插入MySQL多行。在本例中,您将使用一个名为 的函数:mysqli_multi_query()

复制

<?php
  $host = 'host';
  $user = 'user';
  $pass = 'pass';
  $db = 'db';  // Create connection  
  $conn = mysqli_connect($host, $user, $pass, $db);  	
  // Check connection  	
  if (!$conn) {    die("Connection failed: " . mysqli_connect_error());
  }
  $sql = "INSERT INTO users (username, password, email) VALUES ('Johny', 'Dawkins', 'johny@example.com');";  	
  $sql .= "INSERT INTO users (username, password, email) VALUES ('Margaret', 'Johnson', 'marg@example.com');"	
  $sql .= "INSERT INTO users (username, password, email) VALUES ('Juliete', 'Doodley', 'juliete@example.com');";  	
  if (mysqli_multi_query($conn, $sql)) {    
    echo "New records created successfully";
  } else {    
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
  }
  mysqli_close($conn);  
?>

如果要使MySQL使用PDO插入多行,则应用略有不同的MySQL插入语法规则。在这种情况下,您不需要用于PHP MySQL插入。看一看:mysqli_multi_query()

复制

<?php
  $server = 'server';
  $user = 'user';  	
  $pass = 'pass';
  $db = 'db';  try {    
    $con = new PDO("mysql:host=$server;db=$db", $user, $pass);    // PDO error mode is set to exception
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    // the transaction begins
    $con->beginTransaction();    // our SQL statements
    $con->exec("INSERT INTO users (name, surname, e_mail) VALUES ('Ben', 'Jefferson', 'ben@example.com')");
    $con->exec("INSERT INTO users (name, surname, e_mail) VALUES ('Johnny', 'Eriksen', 'johnny@example.com')");
    $con->exec("INSERT INTO users (name, surname, e_mail) VALUES ('Mary', 'Julie', 'julie@example.com')");    // commit the transaction
    $con->commit();    echo "Created new records.";    
  } catch(PDOException $err) {    // roll the transaction back if something fails
    $con->rollback();    echo "Error message: " . $err->getMessage();
  }
  $con = null;  
?>

MySQL 插入多行:摘要

  • MySQL 语句允许您使用一个查询插入多行。这将使您的网站更快。

  • 此插入过程有不同的方法,具体取决于您与 MySQL 的连接类型。无论您选择哪种方式,使用正确的MySQL插入语法都至关重要。


声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!

本文链接:https://www.gaoxuejun173.top/blog/183

广告位

本文配乐
来说两句吧

该文章已禁止评论

最新评论

广告位