Título: conectar a base de datos con objetos
Publicado por: Geek7 en 10 Junio 2014, 14:10 pm
Soy un poco novato en esto asi que perdonen la pregunta. Porque en la funcion "disconnect", al hacer un llamado a la funcion close() (de mysqli) no responde? class DBConnection { private $connection; // On instance created connect to db public function __construct() { $this->connect(); } private function connect() { require_once 'db_config.php'; $this->connection = @new mysqli(DB_HOST, DB_USER, DB_PASSWORD); if(!$this->connection) die('Couldnt connect to db: ' . $this->connection->connect_error); } private function disconnect() { $this->connection->close(); } public function __destruct() { // Check if connection was established if($this->connection != NULL) { $this->disconnect(); } } }
Título: Re: conectar a base de datos con objetos
Publicado por: Shell Root en 10 Junio 2014, 14:35 pm
Que quieres decir que no responde?
Título: Re: conectar a base de datos con objetos
Publicado por: Geek7 en 10 Junio 2014, 14:53 pm
class DBHandler { private $link; private $db_name; // On instance created connect to host // For installation, database name is null public function __construct($db_name = NULL) { $this->db_name = $db_name; $this->link = $this->connection($db_name); } private function connection() { $this->link = @new mysqli(DB_HOST, DB_USER, DB_PASSWORD, $this->db_name); if($this->link) return $this->link; else die('Couldnt connect to db: ' . $this->link->connect_error); } private function disconnect() { $this->link->close(); } public function __destruct() { // Check if connection was established if($this->link != NULL) $this->disconnect(); } }
Recibo: PHP Warning: mysqli::close(): Couldn't fetch mysqli in includes/DBHandler.php on line 24 o sea en la linea: $this->connection->close();
Título: Re: conectar a base de datos con objetos
Publicado por: JorgeEMX en 10 Junio 2014, 18:22 pm
Es error con tu conexión o con los datos de acceso, funciona bien: define("DB_HOST", 'localhost'); class DBHandler { private $link; private $db_name; // On instance created connect to host // For installation, database name is null public function __construct($db_name = NULL) { $this->db_name = $db_name; $this->connection($db_name); } private function connection() { $this->link = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, $this->db_name); if(!$this->link) die('Couldnt connect to db: ' . $this->link->connect_error); } private function disconnect() { $this->link->close(); } public function __destruct() { // Check if connection was established if($this->link != NULL) $this->disconnect(); } public function get_link() { return $this->link; } } $my_db = new DBHandler('mi_super_base_de_datos'); $my_handler = $my_db->get_link(); printf("Versión de la biblioteca cliente: %s\n", $my_handler->client_info);
|