Foros del Web » Programando para Internet » PHP »

problema con objeto guardado como variable de sesion

Estas en el tema de problema con objeto guardado como variable de sesion en el foro de PHP en Foros del Web. Hola foro, soy novatillo por aquí y tengo una cuestión con php y mysql: Realmente no se como se trabaja con la base de datos ...
  #1 (permalink)  
Antiguo 28/10/2004, 10:29
 
Fecha de Ingreso: octubre-2004
Mensajes: 1
Antigüedad: 13 años, 1 mes
Puntos: 0
problema con objeto guardado como variable de sesion

Hola foro, soy novatillo por aquí y tengo una cuestión con php y mysql:

Realmente no se como se trabaja con la base de datos y me explico; yo consideraba que no era normal que en cada página en una misma sesión tendría que conectarme a la BD para hacer una consulta... Entonces la idea fue hacer un objeto base de datos, crearlo en la página de login (haciendo la conexión de la base de datos) y guardarlo como un objeto de sesión... el problema que el objeto de sesión me guarda todos los campos excepto el puntero de la conexión (digo puntero pq la mysql_connect te devuelve un resource de mysql) a la base de datos que no me lo guarda en el objeto de sesión; por lo que no puedo hacer lo que yo quería que era trabar con ese objeto de sesión y llamarle en todos mis scripts de la misma sesión, sólo teniendo que realizar la query.

es decir.... ¿una variable de sesión no puede soportar el return de mysql_connect? entonces ¿lo normal en php es siempre que vayas a hacer consultas.. hacer de nuevo la conexión?.. no sería lo normal, hacer una sola conexión y luego las querys que hagan falta pasando esa variable de conexion como variable de sesión...

muchas gracias espero haberme explicado :P
  #2 (permalink)  
Antiguo 28/10/2004, 10:40
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Prueba con http://es2.php.net/serialize

Lo que te devuelva la función lo metes en sesión y después cuando lo recuperes usa unserialize().

De todas formas yo no lo metería en sesión si el resultado de la bbdd es muy grande.
__________________
¿Te apasiona el mundo del guión? El portal del guión

Última edición por living; 28/10/2004 a las 10:42
  #3 (permalink)  
Antiguo 28/10/2004, 11:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Las Base de datos .. pueden permitirte ciertos tipos de conexiones de tipo "persistentes", es decir .. (ejemplo para Mysql) ...

Si tu usas mysql_connect() para conectarte a tu BD, .. aunque tu no cierres la conexión a tu BD (mysql_close()) .. PHP cierra las conexiones a las BD establecidas (entre otras cosas) al terminar la ejecución de tu script.

Para usar conexiones persistenets en Msyql puedes usar: mysql_pconnect() .. De igual forma hay que hacer uso de dicha función en cada script/página nueva que ejecutes diferente, lo único que hace Mysql en este caso es "ver" si el link de conexión (el "resource") ya se abrió por el cliente que lo solicita y si es así .. continua con el mismo, y si no está, o se perdió .. reconecta. Esto te ahorra el tiempo de negociación del usuario/contraseña contra tu BD a costa de más recursos del servidor (de Mysql) .. Las conexiones persistentes no son ilimitadas ..

Ahora, .. el dilema sería "uso o no uso conexiones persintes"? .. En ese caso habría que ver si tu aplicación para el uso continuado de la misma (una "sesión") que tanto se "mueven" (se piden páginas a tu servidor que hagan uso de tu BD) o no .. Por norma general .. ya que el servidor de tu BD (Mysql) junto con PHP están en el mismo Servidor .. (haciendo conexiones locales) .. no tiene extremadamente diferencia usar o no conexiones persistentes, y el consumo de recursos (memoria, etc ..) es ostensiblemente menor si no usas conexiones persistentes vs el tiempo de conexión que te puedas ahorrar si usas conexiones persistentes.

-------

Con respecto a la propagación del "resource" de tu conexión a tu BD en una sesión ... no sé si podrá hacer (realmente no he visto ningua capa de abstracción de BD que lo haga . .o no me he percatado de como lo hacen). Tal vez .. usando conexiones persistentes ahí puedas trabajar como quieres hacerlo. Sino, recuerda que PHP cierra la conexión.


Un saludo,
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 17:40.