Aktueller Standort: Startseite> Neueste Artikel> Konvertieren Sie alle Daten in mysqli_result in ein 2D -Array

Konvertieren Sie alle Daten in mysqli_result in ein 2D -Array

M66 2025-05-28

Bei der Entwicklung von Anwendungen mit PHP und MySQL verwenden wir häufig MySQLI , um Datenbankabfragen durchzuführen. Nach der Ausführung der Auswahlanweisung gibt MySQLI_Query () ein MySQLi_Result -Objekt zurück, dieses Objekt ist jedoch kein direkt verfügbares Array -Format. Um Daten leichter zu verarbeiten, müssen wir die Abfrageergebnisse normalerweise vollständig in ein zweidimensionales Array umwandeln.

Das Folgende ist eine spezifische Implementierungsmethode.

Kerncode

Wir können mySQLI_Fetch_all () verwenden, um alle Zeilen gleichzeitig zu erhalten. Beachten Sie jedoch, dass diese Funktion mindestens Php 5.3 und höher erfordert. Wenn Sie mit früheren Versionen kompatibel sein möchten, können Sie MySQLI_Fetch_assoc () in Kombination mit Schleifen verwenden.

Hier ist ein Beispiel für die Verwendung von MySQLI_Fetch_all () :

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");

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

$sql = "SELECT * FROM your_table";
$result = $mysqli->query($sql);

if ($result) {
    // MYSQLI_ASSOC Zeigt an, dass das assoziative Array zurückgegeben wird
    $data = $result->fetch_all(MYSQLI_ASSOC);
    print_r($data);
} else {
    echo "Abfrage fehlgeschlagen: " . $mysqli->error;
}

$mysqli->close();
?>

Eine bessere Radsportmethode mit besserer Kompatibilität

Wenn Sie mit früheren Versionen von PHP kompatibel sein müssen, wird empfohlen, eine while -Schleife zu verwenden:

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");

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

$sql = "SELECT * FROM your_table";
$result = $mysqli->query($sql);

$data = [];
if ($result) {
    while ($row = $result->fetch_assoc()) {
        $data[] = $row;
    }
    print_r($data);
} else {
    echo "Abfrage fehlgeschlagen: " . $mysqli->error;
}

$mysqli->close();
?>

In Funktionen eingekapselt

Zur besseren Wiederverwendung können Sie es auch in eine Funktion integrieren:

 <?php
function fetchAllResults($mysqli, $query) {
    $result = $mysqli->query($query);
    $data = [];
    if ($result) {
        while ($row = $result->fetch_assoc()) {
            $data[] = $row;
        }
    }
    return $data;
}

$mysqli = new mysqli("localhost", "username", "password", "database");

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

$sql = "SELECT * FROM your_table";
$data = fetchAllResults($mysqli, $sql);
print_r($data);

$mysqli->close();
?>

Dinge zu beachten

  1. Sicherheit : Denken Sie daran, Vorverarbeitungsanweisungen ( Vorbereitung ) für externe Eingabedaten zu verwenden, um die SQL -Injektion zu verhindern.

  2. Leistung : Eine große Menge an Daten gleichzeitig kann viel Speicher in Anspruch nehmen. Wenn das Datenvolumen groß ist, wird empfohlen, Abfragen zu pagieren.

  3. Fehlerbehandlung : Überprüfen Sie immer, ob $ Ergebnis falsch ist, um zu vermeiden, dass der nachfolgende Code weiter ausführt, wenn die Abfrage fehlschlägt.

Probe URL

Angenommen, die Schnittstelle, die Sie verwenden möchten, lautet: