Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object

mysql_fetch_array vous obtiendrez un tableau qui peut avoir comme clés :

  • les numéros et les noms des colonnes, si vous utilisez MYSQL_BOTH
  • noms des colonnes, en utilisant MYSQL_ASSOC -- dans ce cas, vous obtiendrez la même chose que lorsque vous utilisez mysql_fetch_assoc
  • uniquement des nombres (en fonction de l'ordre des colonnes dans la requête), si vous utilisez MYSQL_NUM

Obtenir des résultats indexés par noms de colonnes est probablement la solution la plus utile - plus facile à utiliser, au moins.

Mais obtenir des résultats indexés par les positions des champs dans la clause select est intéressant dans une situation :lorsque vous avez plusieurs colonnes qui ont le même nom ou alias.
Dans ce cas, comme vous ne pouvez pas avoir deux entrées avec le même index dans un tableau, vous ne pourrez accéder qu'à une seule de ces colonnes en utilisant le nom de la colonne comme index.
Pour les autres colonnes portant le même nom, vous devrez utiliser des index numériques.

Cette situation est probablement le seul cas pour lequel j'utiliserais mysql_fetch_array -- et je préfère plutôt utiliser des alias dans ma requête, pour éviter cette situation -- c'est plus clair, à mon avis.


mysql_fetch_assoc vous obtiendrez un tableau, avec des noms de colonnes comme clés et des données comme valeurs.

Pas grand chose à dire, en fait.


Et mysql_fetch_object vous rapportera des objets en retour.


Choisir entre mysql_fetch_assoc et mysql_fetch_object dépendra très probablement de la façon dont vous développez votre application :si vous utilisez des objets partout, le second est probablement le plus adapté.

Si vous utilisez des tableaux comme conteneurs de données, vous pouvez simplement utiliser le premier.