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] ; }
14
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.
Y 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.
1
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
Publicar un comentario