mysql_unbuffered_query

Iniciado por XafiloX, 8 Diciembre 2010, 21:13 PM

0 Miembros y 1 Visitante están viendo este tema.

XafiloX

Hola, tengo unas dudillas a cerca de mysql_unbuffered_query...No he entendido muy bien como funciona...Según tengo entendido, lo que hace es que la consulta no se guarde en el buffer, ahorrando memoria, y además que se vayan enviando los resultados directamente a php en cuanto se tienen, mejorando la velocidad, pero que por ejemplo no se puede utilizar mysql_num_rows...

Pero entonces lo que no entiendo es qué pasa si por ejemplo, mysql me manda la primera fila que ha encontrado, y yo la cojo con php pero en el tiempo que estoy procesando la primera fila, mysql me ha enviado la 2ª, la 3ª y la 4ª y ahora yo con php quiero coger la siguiente fila...ahí que pasaría? ya que no existe buffer, no?

Y si pasase justo lo contrario, es decir, que php procesase más rapido que lo que tarda mysql en enviarme la siguiente fila y entonces al pedir la siguiente fila ya no haya más?

Y luego, otra duda más...según tengo entendido, cuando utilizas mysql_unbuffered_query no puedes hacer otra query hasta que hayas recuperado todas las filas...pero supongo que eso será para una conexion, no? si hay otra conexion diferente ejecutando otra query no habría problema, no? Y que pasaría si yo pido 20 filas pero luego solo utilizo las 10 primeras??


Os agradecería cualquier explicación, que estoy hecho un lio  :rolleyes:

Gracias!!

~ Yoya ~

Si quieres usar mysql_unbuffered_query con mysql_num_rows() no se puede como lo dice la documentación oficial, pero se me ocurre una forma que seria combinando la estructura de control for() y arrays....

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.