Cita:
Iniciado por atrianaster 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<?php
class db {
private $_username;
private $_password;
private $_host;
private $_db;
private $_conexion;
public function __construct(Config $config)
{
$config_data = $config->getConfig();
$this->_username = $config_data['username'];
$this->_password = $config_data['password'];
$this->_host = $config_data['host'];
$this->_db = $config_data['db'];
//db->Conectar();
}
private function Conectar(){
try {
$this->_conexion = new PDO("mysql:host=$this->_host;dbname=$this->_db", $this->_username, $this->_password);
/*** echo a message saying we have connected ***/
echo 'Connected to database';
}
catch(PDOException $e){
echo $e->getMessage();
}
return $this->_conexion;
}
}
?>
Muchas gracias de antemano!