Ver Mensaje Individual
  #22 (permalink)  
Antiguo 01/09/2010, 11:05
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Duda con PDO y mi clase

Cita:
Iniciado por atrianaster Ver Mensaje
No estas retornando la instancia de PDO en el constructor.
No me refería a que copiaras al método Conectar() literalmente en el constructor, ya que no es una buena practica de desarrollo. El constructor debe contener el código imprescindible para la correcta instanciación de la clase. Lo que te sugerí fue que instanciaras desde el constructor al método Conectar().

Saludos.
Cierto, no estaba devolviendo la instancia creada.

He creado una variable $_conexion y ahí guardo la conexión y es la que retorno. bien no?
Pero cuando intento hacerlo tal y como sugieres no encuentro la forma de llamar al método conectar desde el constructor. ¿Puedes indicarme?

Código PHP:
Ver original
  1. <?php
  2. class db {
  3.     private $_username;
  4.     private $_password;
  5.     private $_host;
  6.     private $_db;
  7.     private $_conexion;
  8.    
  9.     public function __construct(Config $config)
  10.     {
  11.         $config_data = $config->getConfig();
  12.         $this->_username = $config_data['username'];
  13.         $this->_password = $config_data['password'];
  14.         $this->_host = $config_data['host'];
  15.         $this->_db = $config_data['db'];
  16.        
  17.         //db->Conectar();
  18.     }
  19.     private function Conectar(){
  20.         try {
  21.             $this->_conexion = new PDO("mysql:host=$this->_host;dbname=$this->_db", $this->_username, $this->_password);
  22.             /*** echo a message saying we have connected ***/
  23.             echo 'Connected to database';
  24.         }
  25.         catch(PDOException $e){
  26.             echo $e->getMessage();
  27.         }
  28.         return $this->_conexion;
  29.     }
  30. }
  31. ?>

Muchas gracias de antemano!