Auf Websites werden häufig Daten in die Datenbank eingefügt. In diesem Artikel wird erläutert, wie Sie mehrere Daten in die Datenbank einfügen.
Mehrere Datenstücke mit MySQLi und PDO in MySQL einfügen
mysqli_multi_query()-Funktion kann zum Ausführen mehrerer SQL-Anweisungen verwendet werden.
Das folgende Beispiel fügt der Tabelle „MyGuests“ drei neue Datensätze hinzu:
Beispiel (MySQLi – Objektorientiert)
<?php$servername = "localhost";$username = "username";$password = "password";$dbname = "myDB"; // 创建链接$conn = new mysqli($servername, $username, $password, $dbname);// 检查链接if ($conn->connect_error) { die("连接失败: " . $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->multi_query($sql) === TRUE) { echo "新记录插入成功";} else { echo "Error: " . $sql . "<br>" . $conn->error;} $conn->close();?>
Bitte beachten Sie, dass jede SQL-Anweisung durch ein Semikolon getrennt werden muss.
Instanz (MySQLi - Prozedurorientiert)
<?php$servername = "localhost";$username = "username";$password = "password";$dbname = "myDB"; // 创建链接$conn = mysqli_connect($servername, $username, $password, $dbname);// 检查链接if (!$conn) { die("连接失败: " . mysqli_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 (mysqli_multi_query($conn, $sql)) { echo "新记录插入成功";} else { echo "Error: " . $sql . "<br>" . mysqli_error($conn);} mysqli_close($conn);?>
Instanz (PDO)
<?php$servername = "localhost";$username = "username";$password = "password";$dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 开始事务 $conn->beginTransaction(); // SQL 语句 $conn->exec("INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')"); $conn->exec("INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Mary', 'Moe', 'mary@example.com')"); $conn->exec("INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Julie', 'Dooley', 'julie@example.com')"); // 提交事务 $conn->commit(); echo "新记录插入成功";}catch(PDOException $e){ // 如果执行失败回滚 $conn->rollback(); echo $sql . "<br>" . $e->getMessage();} $conn = null;?>
Vorbereitete Anweisungen verwenden
Die MySQLi-Erweiterung bietet eine zweite Verwendungsmöglichkeit für insert-Anweisungen.
Wir können Anweisungen vorbereiten und Parameter binden.
MySQL-Erweiterung kann Anweisungen oder Abfragen ohne Daten an MySQL-Datenbank senden. Sie können Variablen nematisch verknüpfen oder „binden“.
Beispiel (MySQLi verwendet vorbereitete Anweisungen)
<?php$servername = "localhost";$username = "username";$password = "password";$dbname = "myDB"; // 创建连接$conn = new mysqli($servername, $username, $password, $dbname);// 检测连接if ($conn->connect_error) { die("连接失败: " . $conn->connect_error);} else { $sql = "INSERT INTO MyGuests(firstname, lastname, email) VALUES(?, ?, ?)"; // 为 mysqli_stmt_prepare() 初始化 statement 对象 $stmt = mysqli_stmt_init($conn); //预处理语句 if (mysqli_stmt_prepare($stmt, $sql)) { // 绑定参数 mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email); // 设置参数并执行 $firstname = 'John'; $lastname = 'Doe'; $email = 'john@example.com'; mysqli_stmt_execute($stmt); $firstname = 'Mary'; $lastname = 'Moe'; $email = 'mary@example.com'; mysqli_stmt_execute($stmt); $firstname = 'Julie'; $lastname = 'Dooley'; $email = 'julie@example.com'; mysqli_stmt_execute($stmt); }}?
Wir können sehen, dass im obigen Beispiel Modularisierung zur Lösung des Problems verwendet wird. Durch die Erstellung von Codeblöcken können wir das Lesen und Verwalten erleichtern.
Achten Sie auf die Bindung von Parametern. Werfen wir einen Blick auf den Code in mysqli_stmt_bind_param():
mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);
Diese Funktion bindet Parameter Parameter abfragen und an die Datenbank übergeben. Der zweite Parameter ist „sss“ . Die folgende Liste zeigt die Parametertypen. Das s-Zeichen teilt MySQL mit, dass der Parameter eine Zeichenfolge ist.
kann die folgenden vier Parameter sein:
i – Ganzzahl
d – Gleitkommazahl mit doppelter Genauigkeit
s – Zeichenfolge
b – Boolescher Wert
Jeder Parameter muss einen Typ angeben, um die Datensicherheit zu gewährleisten. Typbeurteilung kann das Risiko von SQL-Injection-Schwachstellen verringern.
In diesem Artikel wird ausführlich erläutert, wie Sie mehrere Daten über PHP einfügen. Weitere Lernmaterialien finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
So fügen Sie Daten über PHP in MySQL ein
So erstellen Sie eine MySQL-Tabelle über PHP
So erstellen Sie eine Datenbank über PHP MySQL
Das obige ist der detaillierte Inhalt vonSo fügen Sie mehrere Daten über PHP MySQL ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!