Ver Mensaje Individual
  #7 (permalink)  
Antiguo 22/04/2007, 14:37
zsamer
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: Problema con class shopingCart y objeto Db

Gracias GatorV, pero no hubo caso, tengo esos métodos implementados en mi clase de base de datos connect() y disconnect(), pero al implementarlo de la forma de tu ejemplo mi objeto carro queda como null (se pierde todo).

como "momentaneo" opté por hacer lo siguiente:

Código PHP:
if(isset($_SESSION["cart"]) && $_SESSION["cart"]!=''){ 
            
$cartunserialize($_SESSION["cart"]);
           
$cart->addDbObject($db);
        } else { 
            
$cart= new shoppingCart($db);  // $db objeto de abstracción base de dato
        

funciona bien, pero me gustaría que quede hecho con los métodos mágicos:

Código PHP:
class ShoppingCart {
      public function 
__sleep() {
             
$db->disconnect(); // Cerramos la conexion
      
}

      public function 
__wakeup() {
             
$db->connect(); // Volvemos a conectar a la base de datos
      
}

Cualquier sugerencia estaría muy agradecido.
Mis metodos de connect() y disconnect() tiene la siguiente forma:

Código PHP:
// define MySQL class
class MySQL
{
/*--------------------------------*/
    // connect to database
    
public function connectDB()
    {
        if(!
$this->conId=mysql_connect($this->host,$this->user,$this->password))
        {
            throw new 
Exception('Error connecting to the server');
        }
        if(!
mysql_select_db($this->database,$this->conId))
        {
            throw new 
Exception('Error selecting database');
        }
    }

    function 
disconnect()
    {
        if(
$this->conId)
        {
            if(
$this->query_result)
            {
                @
mysql_free_result($this->query_result);
            } elseif (
$this->result){
                @
mysql_free_result($this->result);
            }
            
$result = @mysql_close($this->conId);
            return 
$result;
        }
        else
        {
            return 
false;
        }
    } 

Gracias y saludos

zsamer