Cita: Creo que lo que estas haciendo no es del todo correcto, no se si sepas pero PHP no puede serializar todo, en concreto, tu clase MySQL al serializarla no estas ganando nada ya que la conexión como tal se cierra, aunque la serializes, es un tipo de dato recurso que PHP va a cerrar.
Sí deseas continuar con lo que haces, lo mejor es que uses los métodos que tiene PHP __sleep y __wakeup para guardar y volver a "levantar" el objeto para que este listo.
Gracias de antemano GastorV, te cuento.
La llamadas mágicas __sleep and __wakeup entan definidas en la clase MySQL que actualmente no esta posteado en el hilo, de todas formas es algo que aun esta sin probar, ya que la idea de serializar los objetos es conseguir acceso a ellos de forma fácil incluso desde un recurso ajax y aun no he podido verificar nada. De todas formas coloco el código y lo comento por si hubiera algún error o algún fallo de entendimiento por mi parte.
La funcion _SLEEP no la utilio, ya que lo serializo nada mas crearla y toque lo que toque desde sleep me cargo algo jeje...
_wakeup() la utilizo para reanimar la conecxión. Ya que entiendo que serialize almacena en el string valores almacenabes, pero intutia que la conecxión probablemente me fuera a dar problemas, asique ya añadi este metodo magico en la declaración de mi clase.
Te dejo el código
Código PHP:
<?php
class MySQL{
//General
public $Ready = false;
protected $conexion;
private $total_consultas;
//Config
private $servidor = '***';
private $usuario = '***';
private $contrasena = '***';
private $nombrebd = '***';
public function __construct(){
if(!isset($this->conexion)){
$this->Ready = $this->conectar();
}
}
private function conectar(){
$this->conexion = (mysql_connect($this->servidor,$this->usuario,$this->contrasena))
or die(mysql_error());
if (mysql_select_db($this->nombrebd,$this->conexion))
{return true;} else {return false;}
}
public function __wakeup()
{
$this->Ready = $this->conectar();
}
public function consulta($consulta){
$this->total_consultas++;
$resultado = mysql_query($consulta,$this->conexion);
if(!$resultado){
echo 'MySQL Error: ' . mysql_error();
exit;
}
return $resultado;
}
.
.
.
}
Pero el problema esta en que no puedo referenciar $user->MySQL con el objeto global mysql.
Agradecería cualquier rayo de luz. Un abrazo