Diferencia entre revisiones de «Plantilla:PHP/ConexionesPersistentesMysqli»
(Una revisión intermedia por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
===Conexiones Persistentes=== | ===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 | + | 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. |
{{MRM_Ejemplo|Title=Idea 1 '''''No válida'''''| | {{MRM_Ejemplo|Title=Idea 1 '''''No válida'''''| | ||
<source lang=php> | <source lang=php> | ||
Línea 33: | Línea 33: | ||
Para hacer una conexión persistente se utiliza una '''''p''''' delante del identificador del host donde tengamos la conexion | Para hacer una conexión persistente se utiliza una '''''p''''' delante del identificador del host donde tengamos la conexion | ||
<source lang=php> | <source lang=php> | ||
− | $con = new | + | $con = new mysqli("p:localhost", "root", "root", "dwes"); |
</source> | </source> | ||
*Ahora la conexión sería persistente | *Ahora la conexión sería persistente |
Última revisión de 04:34 7 mar 2017
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