mysql_fetch_array
Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
Warnung
Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt werden. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL.
Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ.
Alternativen zu dieser Funktion umfassen:
- mysqli_fetch_array
- PDOStatement::fetch
Beschreibung
array mysql_fetch_array
( resource $result
[, int $result_type = MYSQL_BOTH
] )
Parameter-Liste
-
Ergebnis
-
Das Ergebnis
Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem
Aufruf von
mysql_query.
-
result_type
-
Der Typ des Arrays, das gelesen werden soll. Er ist eine Konstante, die
folgende Werte haben kann: MYSQL_ASSOC,
MYSQL_NUM und
MYSQL_BOTH.
Rückgabewerte
Gibt ein Array von Zeichenketten zurück, das der gelesenen Zeile entspricht
oder FALSE falls keine weiteren Zeilen vorhanden sind.
Der Typ des zurückgegebenen Arrays hängt davon ab,
wie result_type definiert ist. Nutzen sie
MYSQL_BOTH (Standard), erhalten sie ein Array mit
sowohl assoziativen als auch numerischen Indice. Nutzen
sie MYSQL_ASSOC erhalten sie nur assoziative Indice
(wie mysql_fetch_assoc arbeitet),
mit MYSQL_NUM erhalten sie nur numerische Indice
(wie mysql_fetch_row arbeitet).
Falls zwei oder mehrere Spalten des Ergebnisses den gleichen
Feldnamen haben, dann wird nur der Wert der letzten Spalte im Array
unter diesem Feldnamen abgelegt. Um auch auf die anderen gleichnamigen
Spalten zugreifen zu können, müssen Sie den numerischen Index der Spalte
verwenden oder einen Alias für die Spalte vergeben. Falls Sie Aliase für
Spalten verwenden, können Sie auf die Inhalte dieser Spalten nicht über
ihren ursprünglichen Namen zugreifen.
Beispiele
Beispiel #1 Abfrage mit alias für identische Feldnamen
SELECT table1.field AS foo, table2.field AS bar FROM table1, table2
Beispiel #2 mysql_fetch_array mit MYSQL_NUM
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf("ID: %s Name: %s", $row[0], $row[1]);
}
mysql_free_result($result);
?>
Beispiel #3 mysql_fetch_array mit MYSQL_ASSOC
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf("ID: %s Name: %s", $row["id"], $row["name"]);
}
mysql_free_result($result);
?>
Beispiel #4 mysql_fetch_array mit MYSQL_BOTH
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf ("ID: %s Name: %s", $row[0], $row["name"]);
}
mysql_free_result($result);
?>
Anmerkungen
Hinweis:
Performance
Zu betonen ist, dass der Gebrauch von
mysql_fetch_array
nicht signifikant langsamer ist als
mysql_fetch_row, obwohl die Funktion einen
sichtlichen Mehrwert bietet.
Hinweis: Feldnamen, die von dieser Funktion
zurückgegeben werden, unterscheiden sich in der
Groß-/Kleinschreibung.
Hinweis: Diese Funktion setzt NULL-Felder
auf den PHP Wert-NULL.
Siehe auch
- mysql_fetch_row
- mysql_fetch_assoc
- mysql_data_seek
- mysql_query