Cómo conectarte a múltiples bases de datos en CodeIgniter

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();

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP