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 usimysql_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.