首页博客网络编程
正如您学会通过插入和删除行来更新数据库表一样,这些过程似乎很容易。但是,当您有大量数据时,知道如何让MySQL一次向数据表插入多行会很方便。
您可以通过使用正确的语句并遵循语法要求来执行此操作。当然,首先您必须建立与数据库的连接并至少创建一个表。
在本教程中,我们将解释如何在您之前创建的表中插入多行 MySQL。无论您使用 MySQLi 还是 POD,都允许添加多个记录。
通过使用 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插入语法都至关重要。
声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!
广告位
广告位