Aktueller Standort: Startseite> Neueste Artikel> Next_Result () und MySQLI_Fetch_assoc () verarbeiten mehrere Ergebnissätze gemeinsam

Next_Result () und MySQLI_Fetch_assoc () verarbeiten mehrere Ergebnissätze gemeinsam

gitbox 2025-04-29

Bei Verwendung von MySQL führen wir manchmal mehrere SQL -Abfragen aus, um mehrere Ergebnissätze gleichzeitig zu erhalten. Wenn Sie in PHP die MySQLI -Erweiterung verwenden, können Sie die Methode multi_query () verwenden, um mehrere Abfragen gleichzeitig auszuführen, und diese Ergebnisse dann einzeln durch next_result () und mysqli_fetch_assoc () festlegen.

Im Folgenden werden wir diesen Prozess anhand von Beispielen demonstrieren.

Szenenbeispiel

Angenommen, wir haben eine Datenbank mit zwei Tabellen: Benutzer und Bestellungen . Wir möchten den Inhalt gleichzeitig in beiden Tabellen abfragen.

 <?php
// Erstellen Sie eine Datenbankverbindung
$mysqli = new mysqli("localhost", "username", "password", "database");

// Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($mysqli->connect_error) {
    die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}

// Konstruieren mehrere LinienSQLStellungnahme
$sql = "SELECT id, name FROM users;";
$sql .= "SELECT id, user_id, total FROM orders;";

// verwendenmulti_query()执行多条Stellungnahme
if ($mysqli->multi_query($sql)) {
    do {
        // verwendenstore_result()Holen Sie sich das aktuelle Ergebnissatz
        if ($result = $mysqli->store_result()) {
            // Durch das aktuelle Ergebnissatz iterieren
            while ($row = $result->fetch_assoc()) {
                print_r($row);
            }
            $result->free(); // Lassen Sie die aktuelle Ergebnisressource frei
        }

        // Wenn es eine nächste Ergebnismenge gibt,Weitermachen
    } while ($mysqli->more_results() && $mysqli->next_result());
} else {
    echo "Abfragefehler: " . $mysqli->error;
}

// Schließen Sie die Datenbankverbindung
$mysqli->close();
?>

Schlüsselfunktionsinterpretation

Multi_query ()

Mit dieser Funktion können Sie mehrere SQL -Anweisungen in einer einzigen Anforderung ausführen. Dies ist sehr nützlich bei der Ausführung von Abfragen und der Reduzierung der Anzahl der Anforderungen.

store_result ()

Diese Funktion wird verwendet, um die aktuelle Ergebnismenge zu erhalten und IT -Zeile nach Zeile mit Fetch_assoc () zu lesen.

fetch_assoc ()

Gibt eine Zeile im Ergebnis als assoziatives Array zurück, die zum Extrahieren von Daten in einer Schleife geeignet ist.

Next_result ()

Diese Funktion wird verwendet, um das nächste Ergebnissatz vorzubereiten. Nach der Verarbeitung des aktuellen Ergebnissatzes muss es aufgerufen werden, um das nächste Ergebnissatz einzugeben.

Empfehlungen für den Gebrauch

  • Verwenden Sie jedes Mal, wenn ein Ergebnissatz verarbeitet wird, Free (), um die Ressource zu befreien.

  • Achten Sie darauf, SQL -Injektionsprobleme zu verhindern. Wenn die Abfrageanweisung Benutzereingaben umfasst, verwenden Sie unbedingt Vorverarbeitungsanweisungen.

  • Überprüfen Sie More_Results (), um sicherzustellen, dass mehr Ergebnissätze zu verarbeiten sind.

Praktische Szenarien

Sie können multi_query () + next_result () in einigen Szenarien verwenden:

  • Backend Report Fragen Sie mehrere Tabellen ab

  • Führen Sie gespeicherte Prozeduren aus, um mehrere Ergebnissätze zurückzugeben

  • Die Leistung optimieren und Datenbankinteraktionen reduzieren

Zusammenfassung

Durch Kombination von multi_query () mit Next_Result () und MySQLI_Fetch_assoc () können wir mehrere Ergebnissätze anmutig verarbeiten und die Programmeffizienz und die Codefonorical verbessern.

Unabhängig davon, ob Sie Unternehmensanwendungen entwickeln oder Ihre eigenen Dienste erstellen, können Sie die Datenbank effizienter bedienen.

Wenn Sie mehr über Inhalte erfahren möchten, besuchen Sie bitte: https://gitbox.net für weitere praktische Tutorials und Materialien.