[Php-avanzado] Diferencias entre mysql_fetch_row mysql_fetch_assoc mysql_fetch_array

Silverzero silverzero.52 en gmail.com
Lun Dic 13 15:55:07 ARST 2010


Hola Leo!

Buenísimo, queda más que claro!

Saludos!

2010/12/13 Leonardo Tadei - Pegasus Tech Supply <leonardot en pegasusnet.com.ar
>

> Hola Carolina,
>
>        lo que decís sobre estas 3 funciones es cierto, sin embargo,
> mysql_fetch_array(...) no genera 2 vectores, sino un vector asociativo,
> accesible por índice y por valor, que es "más grande" que un vextor
> indizado, pero no tanto como dos vectores por separado.
>
>        Por otra parte mysql_fetch_array(...) tiene un segundo parámetro
> opcional y son las constantes  MYSQL_ASSOC, MYSQL_NUM y MYSQL_BOTH.
>        Por default, con MYSQL_BOTH devuelve un vector indizado y
> asociativo,
> con MYSQL_ASSOC un vector asociativo y con MYSQL_NUM un vector indizado,
> con lo que tenés la misma funcionalidad de las 2 primeras funciones que
> cita el artículo.
>
>        Por otra parte, la web y el manual de PHP aclaran desde siempre:
> "Performance: An important thing to note is that using
> mysql_fetch_array() is not significantly slower than using
> mysql_fetch_row(), while it provides a significant added value."...
>
>        y dado el valor añadido que da el poder acceder a los resultados por
> el
> valor, para tener una mejor semántica y código más claro, sumado a
> racionalizar las querys para que devuelvan solo los campos que hacen
> falta y no siempre SELECT * FROM Tabla para al final usar solo 1 o 2
> campos, creo que se pierde más de lo que se gana al usar varias
> funciones para la misma cosa, comparado con optimizar las querys.
>
>        En fin: a veces acá en una locura de optimización, le pasamos un
> MYSQL_ASSOC al mysql_fetch_array() y nos vamos a dormir con la alegría
> del deber cumplido ;-)
>
>
> PD: hay artículos interesantes por ahí que ilustran sobre las
> desventajas de optimizar en etapas tempranas del desarrollo. Los recordé
> al escribir todo esto.
>
>
> El sáb, 11-12-2010 a las 16:38 -0300, Silverzero escribió:
> > Es interesante conocer las diferencias de estas 3 funciones php a la
> > hora de programar nuestras webs.
> >
> > mysql_fetch_row
> > Devuelve un array con índices núméricos para los campos. Ejemplo:
> >
> > $fila = mysql_fetch_row(...)
> > $fila[0], $fila[1], etc...
> >
> > mysql_fetch_assoc
> > Devuelve un array asociativo (cadenas como índices) para los campos.
> > Ejemplo:
> >
> > $fila = mysql_fetch_assoc(...), :
> > $fila['campo_1'], $fila['campo_2'], etc...
> >
> > mysql_fetch_array
> > Devuelve un array con índices numéricos y asociativos.
> >
> > $fila = mysql_fetch_array(...),
> >
> > Conclusión, si lo que queremos es ahorrar en recursos podemos utilizar
> > cualquiera de las 2 primeras funciones php, ya que la última
> > “mysql_fetch_array” generá los 2 arrays de mysql_fetch_row y
> > mysql_fetch_assoc.
> > http://www.bufa.es/diferencias-mysql_fetch/
> > --
> > Carolina
> > _______________________________________________
> > Php-avanzado mailing list
> > Php-avanzado en pato2.fi.mdp.edu.ar
> > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> --
>
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> http://blog.pegasusnet.com.ar
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado




-- 
Carolina
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20101213/682b9821/attachment.htm 


Más información sobre la lista de distribución Php-avanzado