Zum Inhalt springen

fetch_array

In diesem Artikel konzentrieren wir uns auf die Funktion mysqli_fetch_array() in PHP, die verwendet wird, um eine Zeile aus einer MySQLi-Ergebnismenge als assoziatives, numerisches oder kombiniertes Array abzurufen. Wir bieten einen Überblick über die Funktion, ihre Parameter und praktische Beispiele.

Einführung in die Funktion mysqli_fetch_array()

Die Funktion mysqli_fetch_array() ist eine integrierte PHP-Funktion, die eine Zeile aus einer MySQLi-Ergebnismenge abruft. Sie gibt die Zeile als assoziatives Array, numerisches Array oder beides zurück, abhängig vom Parameter result_type. Dies ist besonders nützlich, wenn Sie über Abfrageergebnisse iterieren und auf Spalten nach Namen oder Index zugreifen müssen.

Verwendung der Funktion mysqli_fetch_array()

Die Verwendung von mysqli_fetch_array() erfordert eine gültige MySQLi-Ergebnismenge. Sie wird typischerweise innerhalb einer while-Schleife verwendet, um durch alle Zeilen zu iterieren. Hier ist ein vollständiges Beispiel mit grundlegender Fehlerbehandlung:

Basic usage with a while loop

php
<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");
if (!$mysqli) {
    die("Connection failed: " . mysqli_connect_error());
}

$query = "SELECT * FROM my_table";
$result = mysqli_query($mysqli, $query);
if (!$result) {
    die("Query failed: " . mysqli_error($mysqli));
}

// Fetch rows as an associative array
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo $row['column1'] . " - " . $row['column2'] . "<br>";
}

mysqli_close($mysqli);
?>

In diesem Beispiel stellen wir eine Verbindung her und führen eine Abfrage aus. Wir prüfen auf Verbindungs- und Abfragefehler, um unauffällige Fehler zu vermeiden. Die while-Schleife ruft mysqli_fetch_array() wiederholt auf und gibt false zurück, wenn keine weiteren Zeilen vorhanden sind. Die Konstante MYSQLI_ASSOC stellt sicher, dass auf Spalten nach Namen zugegriffen wird.

Abrufmodi und erweiterte Verwendung

Der zweite Parameter von mysqli_fetch_array() steuert, wie die Zeile zurückgegeben wird. Es stehen drei Konstanten zur Verfügung:

  • MYSQLI_ASSOC – Gibt ein assoziatives Array zurück (Spaltennamen als Schlüssel).
  • MYSQLI_NUM – Gibt ein numerisches Array zurück (Spaltenindizes als Schlüssel).
  • MYSQLI_BOTH – Gibt sowohl assoziative als auch numerische Arrays zurück. Dies ist der Standardmodus, wenn der zweite Parameter weggelassen wird.

So rufen Sie eine Zeile als numerisches Array ab:

Numeric array fetch

php
<?php
// ... connection and query setup ...
while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
    echo $row[0] . " - " . $row[1] . "<br>";
}
?>

Bei Verwendung von MYSQLI_BOTH erscheint jede Spalte zweimal im Array: einmal nach Name und einmal nach Index. Dies kann für Legacy-Code nützlich sein, erhöht jedoch den Speicherverbrauch, daher werden MYSQLI_ASSOC oder MYSQLI_NUM für moderne Anwendungen im Allgemeinen bevorzugt.

Fazit

Die Funktion mysqli_fetch_array() bietet eine flexible Zeilenerfassung aus MySQLi-Ergebnismengen. Durch das Verständnis ihrer Abrufmodi und die Integration einer grundlegenden Fehlerbehandlung können Sie robustere und effizientere Datenbankabfragen in PHP schreiben.

Praxis

Was macht die Funktion mysqli_fetch_array() in PHP?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.