Por regla general, se suele utilizar una base de datos por aplicación web. Pero en ocasiones necesitamos usar dos o más bases de datos en un único sitio web. Si tu aplicación está desarrollada con CodeIgniter, es muy fácil utilizar múltiples bases de datos.
CodeIgniter te proporciona una manera sencilla de conectarte y utilizar múltiples bases de datos en el mismo o en distinto servidor. Solo necesitas configurar unos cuantos aspectos mÃnimos para conectar a más de una base de datos en una aplicación desarrollada con CodeIgniter. En este tutorial, te mostraré cómo conectarte y utilizar múltiples bases de datos en CodeIgniter.
Configuración de las bases de datos
Abre el fichero application/config/database.php y define las credenciales de la otra base de datos:
//Configuracion de la BD por defecto $db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'db_username', 'password' => 'db_password', 'database' => 'db_name', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE ); //Configuracion de la otra BD $db['another_db'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'db_username', 'password' => 'db_password', 'database' => 'db_name2', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE );
Conexión a múltiples bases de datos
Para conectarte a varias bases de datos simultáneamente, carga la base de datos tal que asÃ:
//Cargamos la otra base de datos $DB2 = $this->load->database('another_db', TRUE);
Define el segundo parámetro a TRUE para obtener el objeto de la base de datos.
Utilizar múltiples bases de datos en CodeIgniter
Ahora puedes acceder a múltiples conexiones a bases de datos mediante sus respectivos objetos.
//Query a la base de datos por defecto $this->db->select('first_name, last_name'); $this->db->from('users'); $this->db->where('id', 99); $query = $this->db->get(); //Query a la otra base de datos $DB2->select('image'); $DB2->from('cdn_images'); $DB2->where('id', 25); $query = $DB2->get();