Plantilla:PHP/ConexionesPersistentesMysqli
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.
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
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