¿Qué puede guardarse en las sesiones PHP?

Es un hecho: las sesiones de PHP son una fuente de confusión y frustración para muchos desarrolladores.

Desde mi punto de vista, el problema es que hay muchos puntos de fallo posible.

En este artículo quiero detenerme sobre un punto que, si bien parece simple, tiene sus grises.

Todo el mundo pre-supone que las sesiones son una suerte de baúl mágico donde puede guardarse cualquier cosa y, cual juego de rol, acompaña al héroe a donde vaya.

La realidad no es tan así.

Hay algunos objetos que no pueden ser almacenados en las sesiones PHP.

Un ejemplo que veo con frecuencia es código similar a este:

include("Conexion.php");
$Conexion = Conectar(); --> Donde conectar es una funcion que conecta a mysql
$_SESSION['Conex'] = $Conexion;

Y luego, al querer levantar el dato en otro archivo:

$Conexion = $_SESSION['Conex'];
$Conexion->query('SELECT * FROM user;'); 

Te encontrás con que la conexión no está en la sesión… ¿qué sucedió?

El problema es que los datos que se guardan en la sesión tienen que ser serializados primero y no todos los objetos son serializables.

De hecho, los objetos de tipo Recurso (Tales como las conexiones a MySQL) no lo son.

Si lo que buscas es evitar abrir y cerrar conexiones a la base de datos en cada script lo que debes hacer es utilizar conexiones persistentes

mchojrin

Por mchojrin

Ayudo a desarrolladores PHP a acceder mercados y clientes más sofisticados y exigentes

¿Te quedó alguna duda? Publica aca tu pregunta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.