mysql_fetch_array
(PHP 4, PHP 5)
mysql_fetch_array — Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API. Alternativen zu dieser Funktion umfassen:
Beschreibung
$result
, int $result_type
= MYSQL_BOTH): arrayGibt ein Array zurück, das dem gelesenen Datensatz entspricht und bewegt den internen Datenzeiger um einen Schritt vorwärts.
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
undMYSQL_BOTH
.
Rückgabewerte
Gibt ein Array von Zeichenketten zurück, das dem gelesenen Datensatz
entspricht oder false
falls keine weiteren Datensätze vorhanden sind. Der
Typ des zurückgegebenen Arrays hängt davon ab, wie
result_type
definiert ist. Verwenden sie
MYSQL_BOTH
(Standard), erhalten sie ein Array mit
sowohl assoziativen als auch numerischen Indizes. Verwenden sie
MYSQL_ASSOC
erhalten sie nur assoziative Indizes (wie
bei der Funktion mysql_fetch_assoc()), mit
MYSQL_NUM
erhalten sie nur numerische Indizes (wie bei
der Funktion mysql_fetch_row()).
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 die Verwendung 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() - Liefert einen Datensatz als indiziertes Array
- mysql_fetch_assoc() - Liefert einen Datensatz als assoziatives Array
- mysql_data_seek() - Bewegt den internen Ergebnis-Zeiger
- mysql_query() - Sendet eine Abfrage an MySQL