mysql_fetch_array
erhalten Sie ein Array, das als Schlüssel haben kann:
- sowohl Nummern als auch Spaltennamen, wenn
MYSQL_BOTH
verwendet wird - Spaltennamen mit
MYSQL_ASSOC
-- in diesem Fall erhalten Sie dasselbe wie bei Verwendung vonmysql_fetch_assoc
- nur Zahlen (abhängig von der Reihenfolge der Spalten in der Abfrage), wenn
MYSQL_NUM
verwendet wird
Ergebnisse nach Spaltennamen indiziert zu bekommen, ist wahrscheinlich die nützlichste Lösung -- zumindest einfacher zu verwenden.
Aber Ergebnisse zu erhalten, die durch die Positionen der Felder in der Auswahlklausel indexiert werden, ist in einer Situation interessant:wenn Sie mehrere Spalten haben, die denselben Namen oder Alias haben.
In diesem Fall, da Sie nicht zwei Einträge mit demselben haben können index in einem Array, können Sie nur auf eine dieser Spalten zugreifen, indem Sie den Spaltennamen als Index verwenden.
Für die anderen Spalten mit demselben Namen müssen Sie numerische Indizes verwenden.
Diese Situation ist wahrscheinlich der einzige Fall, für den ich mysql_fetch_array
verwenden würde -- und ich ziehe es eher vor, Aliase in meiner Abfrage zu verwenden, um diese Situation zu vermeiden -- meiner Meinung nach ist es klarer.
mysql_fetch_assoc
erhalten Sie ein Array mit Spaltennamen als Schlüssel und Daten als Werte.
Eigentlich nicht viel zu sagen.
Und mysql_fetch_object
erhalten Sie Objekte im Gegenzug.
Auswahl zwischen mysql_fetch_assoc
und mysql_fetch_object
hängt höchstwahrscheinlich davon ab, wie Sie Ihre Anwendung entwickeln:Wenn Sie überall Objekte verwenden, ist die zweite wahrscheinlich am besten geeignet.
Wenn Sie Arrays als Datencontainer verwenden, können Sie einfach mit dem ersten fortfahren.