Aktueller Standort: Startseite> Neueste Artikel> So verwenden Sie MySQLI_Multi_query (), um die Ausführung von Multi-Statements nach Connect () zu implementieren

So verwenden Sie MySQLI_Multi_query (), um die Ausführung von Multi-Statements nach Connect () zu implementieren

M66 2025-05-24

Beim Betrieb einer Datenbank in PHP besteht eine der gängigen Anforderungen darin, mehrere SQL -Anweisungen auszuführen, um komplexe Transaktionen oder Stapeldatenverarbeitung abzuschließen. Die Funktion von MySQLI_Multi_query () ist dafür ausgelegt, wodurch mehrere SQL -Anweisungen gleichzeitig ausgeführt werden können, die die Effizienz verbessern und den Code vereinfachen. In diesem Artikel wird detailliert erläutert, wie mehrere SQL -Anweisungen mithilfe von MySQLI_Multi_Query () korrekt ausgeführt werden, nachdem eine Datenbankverbindung mithilfe der Funktion Connect () und das Rückgabeergebnis verarbeitet wird.

1. Stellen Sie eine Datenbankverbindung her

Zunächst stellen wir eine Verbindung zur MySQL -Datenbank über die Funktion Connect () her. Angenommen, dies ist eine verpackte Funktion, die ein gültiges MySQLI -Objekt zurückgibt.

 <?php
function connect() {
    $host = 'localhost';
    $user = 'root';
    $password = 'password';
    $database = 'testdb';

    $conn = new mysqli($host, $user, $password, $database);

    if ($conn->connect_error) {
        die('Verbindung ist fehlgeschlagen: ' . $conn->connect_error);
    }

    return $conn;
}
?>

2. Führen Sie mehrere SQL -Anweisungen mit MySQLi_Multi_query () aus () aus.

Angenommen, wir haben mehrere SQL-Anweisungen, die ausgeführt werden müssen, z. B. das Erstellen von Tabellen, das Einfügen von Daten usw., und wir können sie in eine Semikolon ( ; ) -verzögerte Zeichenfolge kombinieren und an mysqli_multi_query () weitergeben.

 <?php
$conn = connect();

$sql = "
CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL
);
INSERT INTO users (username, email) VALUES ('Zhang San', 'zhangsan@m66.net');
INSERT INTO users (username, email) VALUES ('Li Si', 'lisi@m66.net');
";

if ($conn->multi_query($sql)) {
    do {
        // Speichern Sie das erste Ergebnissatz
        if ($result = $conn->store_result()) {
            while ($row = $result->fetch_assoc()) {
                print_r($row);
            }
            $result->free();
        }
        // Wenn es mehr Ergebnissätze gibt,Setzen Sie die Schleife fort
    } while ($conn->more_results() && $conn->next_result());
} else {
    echo "Die Ausführung mehrerer Anweisungen schlug fehl: " . $conn->error;
}

$conn->close();
?>

3.. Schlüsselpunkte Beschreibung

  • SQL -Anweisungsformat : Mehrere SQL -Anweisungen müssen durch Semikolons getrennt werden, und jede Anweisung hat die richtige Syntax.

  • Ergebnisverarbeitung : Nachdem MySQLI_Multi_query () ausgeführt wurde, müssen alle Ergebnissätze durch Looping Store_Result () und More_Results () durchquert werden. Auch wenn einige Aussagen das Ergebnis nicht zurückgeben, rufen Sie Next_Result () an, um zum nächsten Ergebnis zu springen.

  • Fehlerbehandlung : Wenn die Ausführung fehlschlägt, können Sie spezifische Fehlerinformationen über $ conn-> Fehler für das einfache Debuggen abrufen.

4..