18 votos

Resultados de Mysql en PHP - ¿arreglos u objetos?

He estado usando PHP/MySQL durante un tiempo, y me pregunto si hay alguna ventaja específica (de rendimiento o de otro tipo) al usar mysql_fetch_object() frente a mysql_fetch_assoc() / mysql_fetch_array().

28voto

Michael Burge Puntos 639

En cuanto al rendimiento, no importa lo que uses. La diferencia es que mysql_fetch_object devuelve un objeto:

while ($row = mysql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}

mysql_fetch_assoc() devuelve un Array asociativo:

while ($row = mysql_fetch_assoc($result)) {
    echo $row["userid"];
    echo $row["fullname"];
}

y mysql_fetch_array() devuelve Array:

while ($row = mysql_fetch_array($result)) {
    echo $row[0];
    echo $row[1] ;
}

5voto

blueyed Puntos 7719

Algo a tener en cuenta: los arrays pueden añadirse fácilmente a una caché de memoria (eaccelerator, XCache, ..), mientras que los objetos no (¡necesitan serializarse cuando se almacenan y des-serializarse en cada recuperación!)

Es posible que cambie al uso de arrays en lugar de objetos cuando quiera añadir soporte de caché de memoria - pero para ese momento es posible que tenga que cambiar mucho código ya, que utiliza los valores de retorno de tipo de objeto utilizados anteriormente.

2voto

Steve Paulo Puntos 8263

Obtención de una matriz con mysql_fetch_array() permite recorrer el conjunto de resultados mediante un bucle foreach o un bucle for. mysql_fetch_object() no puede ser atravesado por un bucle for.

No estoy seguro de que eso importe mucho, sólo pensé en mencionarlo.

1voto

oscaralexander Puntos 61

Además, si eventualmente quiere aplicar el Memcaching a sus resultados de MySQL, es posible que quiera optar por arrays. Parece que es más seguro almacenar tipos Array, en lugar de resultados de tipo objeto.

1voto

dirtside Puntos 3613
while ($Row = mysql_fetch_object($rs)) {
    // ...do stuff...
}

...es como siempre lo he hecho. Prefiero usar objetos para colecciones de datos en lugar de arrays, ya que organiza los datos un poco mejor, y sé que es mucho menos probable que intente añadir propiedades arbitrarias a un objeto que intentar añadir un índice a un Array (durante los primeros años que usé PHP, pensé que no se podían asignar propiedades arbitrarias a un objeto, así que está arraigado el no hacerlo).

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X