Diferencia entre revisiones de «Plantilla:PHP/ConexionesPersistentesMysqli»
(Página creada con «===Conexiónes entre diferentes páginas=== 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...») |
|||
(8 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
− | === | + | ===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> | ||
//conecto en localhost a la base de datos dwes | //conecto en localhost a la base de datos dwes | ||
Línea 19: | Línea 19: | ||
.... | .... | ||
</source> | </source> | ||
− | } | + | }} |
− | + | <br /> | |
− | {{ | + | 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 |
+ | {{MRM_Recursos de la Web| | ||
*http://www.php.net/manual/en/intro.session.php | *http://www.php.net/manual/en/intro.session.php | ||
*En ella podemos leer: | *En ella podemos leer: | ||
Línea 28: | Línea 29: | ||
las variables resource no pueden ser almacenadas en la sesión. | las variables resource no pueden ser almacenadas en la sesión. | ||
}} | }} | ||
− | === | + | <br /> |
+ | 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 | ||
+ | <source lang=php> | ||
+ | $con = new mysqli("p:localhost", "root", "root", "dwes"); | ||
+ | </source> | ||
+ | *Ahora la conexión sería persistente | ||
+ | {{MRM_Recursos de la Web|Title=Conexiónes persistentes| | ||
+ | *http://www.php.net/manual/es/mysqli.persistconns.php | ||
+ | *http://manuales.guebs.com/php/features.persistent-connections.html | ||
+ | }} | ||
+ | <!-- Hablar de la estrategia skeleton ... --> |
Ú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