Diferencia entre revisiones de «Plantilla:PHP/ConexionesPersistentesMysqli»

De WikiEducator
Saltar a: navegación, buscar
(Conexiones entre diferentes páginas)
Línea 20: Línea 20:
 
</source>
 
</source>
 
}}
 
}}
Este tema 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
+
<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|
 
{{MRM_Recursos de la Web|
 
*http://www.php.net/manual/en/intro.session.php
 
*http://www.php.net/manual/en/intro.session.php
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 />
===Serializar===
+
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 mysali("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
 +
}}

Revisión de 11:18 19 dic 2016

Conexiones 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 conexión en una viariable de sesión y serializarla. Este concepto de serializar estás 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 mysali("p:localhost", "root", "root", "dwes");
  • Ahora la conexión sería persistente