Plantilla:PHP/ConexionesPersistentesMysqli

De WikiEducator
Saltar a: navegación, buscar

Conexiones Persistentes

Es muy frecuente que la misma conexión se quiera mantener en diferentes páginas PHP. La primera idea lógica sería guardar la conexión en una viariable de sesión y serializarla. Este concepto de serializar está brevemente explicado en un apartado posterior.


Icon casestudy.gif
Idea 1 No válida
//conecto en localhost a la base de datos dwes
$con = new mysali("localhost", "root", "root", "dwes");
....
//Guardo la en una variable de sesión  la conexión serializada
$conSerializada = serialize($con);
$_SESSION['conexion']=$conSerializada;
.....

Cuando en la otra página necesitemos recuperar la conexión la leeríamos y la des-serializaríamos.

....
sesion_start();
$con = unserialize($_SESSION['conexion']);
....



Esta forma de trabajar no funciona, pues no podemos serializar objetos de tipo recurso como es el caso de mysqli, ver más información en la web de php


Icon inter.gif
Recursos de la Web
Advertencia
Debido a que los datos de sesión son serializados, 
las variables resource no pueden ser almacenadas en la sesión.



Podemos actuar con otra estrategia. Consiste en trabajar con una conexión persistente.La idea de una conexión persistente es que si cuando se va a conectar a una base de datos, ya se hizo con anterioridad, no se vuelve a crear una nueva conexión, si no que se utiliza la que ya teníamos. Para hacer una conexión persistente se utiliza una p delante del identificador del host donde tengamos la conexion

$con = new mysqli("p:localhost", "root", "root", "dwes");
  • Ahora la conexión sería persistente