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
$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
// ... 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?