Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object

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 von mysql_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.