Mysql
 sql >> Database >  >> RDS >> Mysql

mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object

mysql_fetch_array otterrai un array che può avere come chiavi:

  • sia i numeri che i nomi delle colonne, se si utilizza MYSQL_BOTH
  • nomi delle colonne, utilizzando MYSQL_ASSOC -- in questo caso, otterrai la stessa cosa che ottieni quando usi mysql_fetch_assoc
  • solo numeri (a seconda dell'ordine delle colonne nella query), se si utilizza MYSQL_NUM

Ottenere risultati indicizzati in base ai nomi delle colonne è probabilmente la soluzione più utile, almeno più facile da usare.

Ma ottenere risultati indicizzati dalle posizioni dei campi nella clausola select è interessante in una situazione:quando hai più colonne che hanno lo stesso nome o alias.
In questo caso, poiché non puoi avere due voci con lo stesso index in un array, potrai accedere solo a una di queste colonne utilizzando il nome della colonna come indice.
Per le altre colonne che hanno lo stesso nome, dovrai utilizzare indici numerici.

Quella situazione è probabilmente l'unico caso per il quale userei mysql_fetch_array -- e preferisco usare alias nella mia query, per evitare quella situazione -- è più chiaro, secondo me.


mysql_fetch_assoc otterrà un array, con nomi di colonne come chiavi e dati come valori.

Non c'è molto da dire, in realtà.


E mysql_fetch_object ti daranno oggetti in cambio.


Scelta tra mysql_fetch_assoc e mysql_fetch_object molto probabilmente dipende da come sviluppi la tua applicazione:se usi oggetti ovunque, il secondo è probabilmente il più adatto.

Se usi gli array come contenitori di dati, puoi semplicemente usare il primo.