So fügen Sie mehrere Daten über PHP MySQL ein

jacklove
Freigeben: 2023-03-25 14:10:02
Original
3269 Leute haben es durchsucht

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 (&#39;John&#39;, &#39;Doe&#39;, &#39;john@example.com&#39;);";$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (&#39;Mary&#39;, &#39;Moe&#39;, &#39;mary@example.com&#39;);";$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (&#39;Julie&#39;, &#39;Dooley&#39;, &#39;julie@example.com&#39;)"; 
if ($conn->multi_query($sql) === TRUE) {
    echo "新记录插入成功";} else {
    echo "Error: " . $sql . "<br>" . $conn->error;}
 $conn->close();?>
Nach dem Login kopieren



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 (&#39;John&#39;, &#39;Doe&#39;, &#39;john@example.com&#39;);";$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (&#39;Mary&#39;, &#39;Moe&#39;, &#39;mary@example.com&#39;);";$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (&#39;Julie&#39;, &#39;Dooley&#39;, &#39;julie@example.com&#39;)"; 
if (mysqli_multi_query($conn, $sql)) {
    echo "新记录插入成功";} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);}
 mysqli_close($conn);?>
Nach dem Login kopieren

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 (&#39;John&#39;, &#39;Doe&#39;, &#39;john@example.com&#39;)");    $conn->exec("INSERT INTO MyGuests (firstname, lastname, email) 
    VALUES (&#39;Mary&#39;, &#39;Moe&#39;, &#39;mary@example.com&#39;)");    $conn->exec("INSERT INTO MyGuests (firstname, lastname, email) 
    VALUES (&#39;Julie&#39;, &#39;Dooley&#39;, &#39;julie@example.com&#39;)"); 
    // 提交事务
    $conn->commit();    echo "新记录插入成功";}catch(PDOException $e){
    // 如果执行失败回滚
    $conn->rollback();    echo $sql . "<br>" . $e->getMessage();}
 $conn = null;?>
Nach dem Login kopieren

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, &#39;sss&#39;, $firstname, $lastname, $email); 
        // 设置参数并执行
        $firstname = &#39;John&#39;;        $lastname = &#39;Doe&#39;;        $email = &#39;john@example.com&#39;;        mysqli_stmt_execute($stmt); 
        $firstname = &#39;Mary&#39;;        $lastname = &#39;Moe&#39;;        $email = &#39;mary@example.com&#39;;        mysqli_stmt_execute($stmt); 
        $firstname = &#39;Julie&#39;;        $lastname = &#39;Dooley&#39;;        $email = &#39;julie@example.com&#39;;        mysqli_stmt_execute($stmt);    }}?
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!