Aktueller Standort: Startseite> Neueste Artikel> Die richtige Pose, um mySQLI_Result zu treten

Die richtige Pose, um mySQLI_Result zu treten

M66 2025-05-28

Bei der Verwendung von PHP für Datenbankvorgänge bietet die MySQLI -Erweiterung sehr bequeme Funktionen zum Verbinden, Abfragen und Betrieb von Datenbanken. MySQLI_Result ist das Ergebnis -Set -Objekt, das bei der Ausführung der Abfrage zurückgegeben wird. In diesem Artikel wird vorgestellt, wie alle von der MySQLI_Result -Funktion zurückgegebenen Ergebnisse korrekt durchlaufen werden, damit die Abfragergebnisse effizient erhalten und verarbeitet werden können.

1. Verbinden Sie eine Verbindung zur Datenbank

Zunächst müssen wir über die Funktion mySQLI_Connect () eine Verbindung zur Datenbank herstellen. Angenommen, Sie haben hier, dass Sie bereits eine grundlegende Erfahrung des MySQL -Datenbankbetriebs haben. Folgendes ist ein einfaches Beispiel für Datenbankverbindungen:

 <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// Eine Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);

// Überprüfen Sie die Verbindung
if ($conn->connect_error) {
    die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}
?>

2. Ausführen von Anfragen

Nachdem wir eine Verbindung zur Datenbank hergestellt haben, können wir SQL -Abfragen über MySQLI_Query () ausführen. Nehmen wir an, wir fragen eine Tabelle mit dem Namen Benutzer ab und erhalten Informationen über alle Benutzer:

 $sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);

Zu diesem Zeitpunkt wird $ result ein mySQLI_Result -Objekt sein, das alle Daten der Abfrage enthält.

3. Verwenden Sie MySQLI_Fetch_assoc (), um die Ergebnisse zu durchqueren

Der häufigste Weg, um das von MySQLI_Result zurückgegebene Ergebnis -Set zu durchqueren, besteht darin, die Funktion mySQLI_Fetch_assoc () zu verwenden. Die Funktion gibt ein assoziatives Array zurück, und jedes Mal, wenn sie genannt wird, gibt sie eine Datenreihe zurück und verschiebt den Zeiger in die nächste Zeile, bis keine Daten mehr vorhanden sind.

 if ($result->num_rows > 0) {
    // Ausgabedaten für jede Zeile
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 Ergebnis";
}

In diesem Beispiel gibt MySQLI_Fetch_assoc () ein assoziatives Array zurück, in dem der Schlüssel des Arrays der Feldname ist und der Wert der Wert des entsprechenden Feldes ist.

4. Verwenden Sie MySQLI_Fetch_row (), um die Ergebnisse zu durchqueren

Zusätzlich zu MySQLI_Fetch_assoc () können Sie auch MySQLI_Fetch_Row () verwenden, um ein Indexarray zurückzugeben, und die Feldwerte jeder Datenreihe werden in der Reihenfolge in der Reihenfolge gespeichert. Bei Verwendung dieser Methode müssen Sie über den Index auf die Werte jedes Feldes zugreifen.

 if ($result->num_rows > 0) {
    // Ausgabedaten für jede Zeile
    while($row = $result->fetch_row()) {
        echo "id: " . $row[0] . " - Name: " . $row[1] . " - Email: " . $row[2] . "<br>";
    }
} else {
    echo "0 Ergebnis";
}

Hier gibt MySQLI_Fetch_row () ein numerisches Indexarray zurück, $ row [0] entspricht dem Feld ID , $ row [1] ist Name und $ row [2] ist eine E -Mail .

5. Verwenden Sie MySQLI_Fetch_object (), um die Ergebnisse zu durchqueren

Wenn Sie mehr an die Art und Weise gewöhnt sind, wie Objekte zur Verarbeitung von Abfrageergebnissen verwendet werden, können Sie mySQLI_Fetch_object () verwenden. Es gibt ein Objekt zurück, auf jedes Feld kann über die Objekteigenschaften zugegriffen werden.

 if ($result->num_rows > 0) {
    // Ausgabedaten für jede Zeile
    while($row = $result->fetch_object()) {
        echo "id: " . $row->id . " - Name: " . $row->name . " - Email: " . $row->email . "<br>";
    }
} else {
    echo "0 Ergebnis";
}

6. Eine andere Möglichkeit, alle Ergebnisse zu durchqueren

Wenn Sie während der Verarbeitung Daten auf allen Zeilen flexibler manipulieren müssen, können Sie die Funktion mySQLI_Fetch_all () verwenden, die ein zweidimensionales Array zurückgibt, das alle Ergebnisse enthält.

 $allResults = $result->fetch_all(MYSQLI_ASSOC);

foreach ($allResults as $row) {
    echo "id: " . $row["id"] . " - Name: " . $row["name"] . " - Email: " . $row["email"] . "<br>";
}

Hier gibt Fetch_All (mysqli_assoc) alle Ergebnisse als assoziatives Array zurück.

7. Schließen Sie die Verbindung

Denken Sie nach Abschluss des Vorgangs daran, die Datenbankverbindung zu schließen:

 $conn->close();

Zusammenfassen

Durch die oben genannten Methoden können wir alle Ergebnisse durch die MySQLI_Result -Funktion durchführen. Welche Methode zu verwenden ist, hängt von Ihren individuellen Bedürfnissen und der Verarbeitung der Daten ab. Wenn Sie Felder erhalten möchten, indem Sie Arrays assoziieren, können Sie mySQLI_Fetch_assoc () verwenden. Wenn Sie objektorientiert bevorzugen, können Sie mySQLI_Fetch_object () auswählen; Wenn Sie alle Datenzeilen gleichzeitig verarbeiten müssen, können Sie mySQLI_Fetch_all () verwenden.

Denken Sie daran, nach dem Datenbankverbindungsvorgang die Verbindung rechtzeitig zu schließen, um die Freigabe von Ressourcen sicherzustellen.