mysql_fetch_object vs mysql_fetch_assoc vs


mysql_fetch_object() : Devuelve la fila actual de un conjunto de resultados como un objeto
 while ($row = mysql_fetch_object($result)) { echo $row->user_id; echo $row->fullname; } 
mysql_fetch_assoc () devuelve una matriz asociativa:
 while ($row = mysql_fetch_assoc($result)) { echo $row["userid"]; echo $row["fullname"]; } 
y mysql_fetch_array () devuelve array:
 while ($row = mysql_fetch_assoc($result)) { echo $row[0]; echo $row[1] ; } 



14voto abajoaceptado
mysql_fetch_array te conseguirá una matriz que puede tener como claves:
  • ambos números y nombres de columnas, si se usa MYSQL_BOTH
  • nombres de columnas, usando MYSQL_ASSOC - en este caso, obtendrás lo mismo que obtienes al usar mysql_fetch_assoc
  • solo números (dependiendo del orden de las columnas en la consulta), si se usa MYSQL_NUM
Obtener resultados indexados por nombres de columnas es probablemente la solución más útil, más fácil de usar, al menos.
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 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 para 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 te proporcionará una matriz, con nombres de columnas como claves y datos como valores.
No hay mucho que decir, en realidad.
mysql_fetch_object te traerá objetos a cambio.
Elegir entre mysql_fetch_assoc y mysql_fetch_object probablemente dependa de cómo desarrolles tu aplicación: si usas objetos en todas partes, la segunda es probablemente la más adecuada.
Si usa matrices como contenedores de datos, puede ir con la primera.
mysql_fetch_array () obtiene una fila de resultados como una matriz asociativa, una matriz numérica o ambas. Devuelve una matriz de cadenas que corresponde a la fila recuperada, o FALSE si no hay más filas. El tipo de matriz devuelta depende de cómo se defina $ result_type.
Al usar MYSQL_NUM, solo obtiene índices de números (como $ fila [0], $ fila 1 , etc.), es decir, matriz numérica.
Al usar MYSQL_ASSOC, solo obtiene índices asociativos (como $ row ["id"], $ row ["name"], etc.) es decir, matriz asociativa.
Al usar MYSQL_BOTH (predeterminado), obtendrá una matriz con índices tanto asociativos como numéricos. (como $ row [0], $ row ["name"], etc.) es decir, matriz numérica y matriz asociativa.
mysql_fetch_assoc () obtiene una fila de resultados como una matriz asociativa. (nombres de columna como clave).
mysql_fetch_object () recupera la fila de resultados como un objeto.
Devuelve un objeto con propiedades que corresponden a la fila captada y mueve el puntero interno de datos hacia adelante.

Comentarios

Entradas populares de este blog

Para que sirve la N en SQL Server

MYSQL : CURSORES

SQL SERVER : EJECUTAR UN PAQUETE SSIS