Ver Mensaje Individual
  #12 (permalink)  
Antiguo 30/12/2013, 08:24
Avatar de jonni09lo
jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Smarty Clase constructor

Hola, no sé si esto te funcione (la de pasar variables por referencia es sacado de la documentación)

ConexionDB.class.php (se cambia el modo invocar el constructor)
Código PHP:
Ver original
  1. <?php
  2. require_once ADODB_BASEFILE;
  3. class ConexionDB {
  4.  
  5.     public $dbLink;
  6.  
  7.     public function __construct(){
  8.         $this->dbLink = &ADONewConnection(DB_TYPE); //Se pasa por referencia
  9.         $this->dbLink->SetFetchMode(ADODB_FETCH_ASSOC);
  10.         $dbconnected = $this->dbLink->PConnect(DB_HOST, DB_USER, DB_KEY, DB_DATA);
  11.         if (!$dbconnected){
  12.             Debug::println('No se pudo conectar a la Base de Datos');
  13.             exit(0);
  14.         }
  15.     }
  16.  
  17.     function __destruct(){
  18.        
  19.     }
  20. }
  21. ?>

ProductoDAO.class.php
Código PHP:
Ver original
  1. <?php
  2. class ProductoDAO {
  3.  
  4.     public function __construct(){
  5.     }  
  6.  
  7.     function listar(){
  8.         $query = "SELECT id_producto, id_categoria, nombre, descripcion, precio, stock, importancia, imagen FROM producto order by id_producto";
  9.         $BD = new ConexionDB();
  10.         $recordSet = &$BD->dbLink->Execute($query); //Se pasa por referencia
  11.         if (!$recordSet){
  12.             Debug::println("No se pudo ejecutar la consulta listar: " . $query);
  13.             return false;
  14.         }
  15.         $productos = array();
  16.         while($fila=$recordSet->FetchRow()) {
  17.             $productos[] = new ProductoVO($fila['id_producto'], $fila['id_categoria'], $fila['nombre'],
  18.                                       $fila['descripcion'], $fila['precio'], $fila['stock'], $fila['importancia'],
  19.                                       $fila['imagen']);
  20.         }
  21.         return $productos;
  22.     }
  23.  
  24.     function __destruct(){
  25.        
  26.     }
  27. }
  28. ?>

Pruebalo y nos comentas como te fue

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.