Foros del Web » Programando para Internet » PHP »

Resources

Estas en el tema de Resources en el foro de PHP en Foros del Web. Hola amigos, ¿como están? espero que bien ... Bueno, pues mi pregunta es si los resource que devuelve la funcion mysql_query() pueden ser persistentes, es ...
  #1 (permalink)  
Antiguo 08/04/2009, 04:26
 
Fecha de Ingreso: abril-2008
Ubicación: Aquí y Allá
Mensajes: 88
Antigüedad: 16 años
Puntos: 3
Pregunta Resources

Hola amigos, ¿como están? espero que bien ...

Bueno, pues mi pregunta es si los resource que devuelve la funcion mysql_query() pueden ser persistentes, es decir, que por ejemplo, si te cambias de pagina puedas seguir accediendo al resultado de esa consulta.

Se que para las conexiones con mysql se pueden hacer conexiones persistentes, que no son cerradas al terminar el script, ¿se puede hacer algo por el estilo con los resultados de una consulta?

Muchas gracias por adelantado,

Saludos!!
__________________
Nadie es perfecto: los errores de los cocineros se tapan con mayonesa, los errores de los albañiles se tapan con cemento y los errores de los medicos se tapan con tierra.
  #2 (permalink)  
Antiguo 08/04/2009, 05:58
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: Resources

http://www.forosdelweb.com/f18/consu...ar-row-687482/
  #3 (permalink)  
Antiguo 08/04/2009, 06:05
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Resources

Muy interesante este tema. Realmente nunca lo probe y no se si esto funciona o no.

Por curiosidad lei en php.net y encontre lo siguiente.

Un listado de funciones que crean resources:
http://es2.php.net/manual/es/resource.php

Mirando lo anterior encuentro que "mysql_query()" crear un resource que es destruido por "mysql_free_result()" entonces pienso que si no es ejecutada esta última funcion el resource seguira activo.

A ver si algun experto resuelve la duda.

Lo mejor seria hacer algunas pruebas, si las hiciste ya, cuentanos que tal.
__________________
----
http://www.mascodigo.com
  #4 (permalink)  
Antiguo 08/04/2009, 06:30
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Resources

Pues el resource no lo puedes pasar, lo que si puedes pasar es el resultado de la consulta ya en un array.

Al tu ejecutar tu consulta, guardas los resultados en un array, entonces guardas ese array en una variable de session para poder seguir accediendo a los datos en varias paginas.

Cita:
Mirando lo anterior encuentro que "mysql_query()" crear un resource que es destruido por "mysql_free_result()" entonces pienso que si no es ejecutada esta última funcion el resource seguira activo.
Si mysql_free_result() no es llamado, y el script finaliza, entonces se "pierde" toda la informacion, se cierran las conexiones (a menos que sean persistentes), etc..
  #5 (permalink)  
Antiguo 08/04/2009, 06:36
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Resources

Gracias RonRuby por la aclaración.

Leo en php.net

Cita:
Gracias al sistema de conteo de referencias introducido con el Motor Zend de PHP 4, un recurso que ya no es referenciado es detectado automáticamente, y es liberado por el recolector de basura. Por esta razón, rara vez se necesita liberar la memoria manualmente.
Supongo que por esto, es que al finalizar el script, como dices, se pierde toda la información.
__________________
----
http://www.mascodigo.com
  #6 (permalink)  
Antiguo 08/04/2009, 06:38
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Resources

Exactamente.

Última edición por Ronruby; 08/04/2009 a las 06:52
  #7 (permalink)  
Antiguo 09/04/2009, 12:58
 
Fecha de Ingreso: abril-2008
Ubicación: Aquí y Allá
Mensajes: 88
Antigüedad: 16 años
Puntos: 3
Respuesta: Resources

Hola, chicos, gracias por responder,

nx00 interesante la pagina que me indicaste, la leere con atencion de arriba a abajo, la tabla, e ire probando, yo lo que habia probado era hacer la conexion con mysql_connect() y luego mysql_query() y guardaba el resultado de la función en SESSION y luego desde otra pagina accedía a esa variable, y pues no funcionaba ...

Entonces, ¿toda la culpa es del Recolector de Basura? para mi todavia sigue siendo un misterio este señor

Entonces ¿no hay manera de ahorrarnos el pasar los datos a un array?
__________________
Nadie es perfecto: los errores de los cocineros se tapan con mayonesa, los errores de los albañiles se tapan con cemento y los errores de los medicos se tapan con tierra.
  #8 (permalink)  
Antiguo 09/04/2009, 14:06
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Resources

Recoge los datos con mysql_fetch_array() y metelos en una variable de SESSION.

Código PHP:
<?php
while($row mysql_fetch_assoc($result)) {
  
$_SESSION['datos'][] = $row;
}
?>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:27.