sql >> Base de Datos >  >> RDS >> Mysql

mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_objeto

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