mysql_fetch_array
obtendrá una matriz que puede tener como claves:
- tanto los números como los nombres de las columnas, si usa
MYSQL_BOTH
- nombres de columnas, usando
MYSQL_ASSOC
-- en este caso, obtendrá lo mismo que obtiene al usarmysql_fetch_assoc
- solo números (dependiendo del orden de las columnas en la consulta), si usa
MYSQL_NUM
Obtener resultados indexados por nombres de columnas es probablemente la solución más útil, al menos más fácil de usar.
Pero obtener resultados indexados por las posiciones de los campos en la cláusula de selección es interesante en una situación:cuando tiene varias columnas que tienen el mismo nombre o alias.
En este caso, como no puede tener dos entradas con el mismo índice en una matriz, podrá acceder solo a una de esas columnas usando el nombre de la columna como índice.
Para las otras columnas que tienen el mismo nombre, deberá usar índices numéricos.
Esa situación es probablemente el único caso en el que usaría mysql_fetch_array
-- y prefiero usar alias en mi consulta, para evitar esa situación -- es más claro, en mi opinión.
mysql_fetch_assoc
obtendrá una matriz, con nombres de columnas como claves y datos como valores.
No hay mucho que decir, en realidad.
Y mysql_fetch_object
obtendrá objetos a cambio.
Elegir entre mysql_fetch_assoc
y mysql_fetch_object
lo más probable es que dependa de cómo desarrolle su aplicación:si usa objetos en todas partes, el segundo es probablemente el más adecuado.
Si usa matrices como contenedores de datos, puede optar por la primera.