Conectar multiples bases de datos en CodeIgniter

En el archivo database.php

tenemos la siguiente información por defecto

$active_group = "default";
$active_record = TRUE;
$db['default']['hostname'] = "xxxxx";
$db['default']['username'] = "xxxxx";
$db['default']['password'] = "xxxxx";
$db['default']['database'] = "xxxxx";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

Para añadir otra conexión de bases de datos tendremos que añadir al principio de este código la nueva conexión y quedaría algo así

/* Base de datos XXXX */
$active_group = "my_db";
$active_record = TRUE;
$db['my_db']['hostname'] = "xxxxx";
$db['my_db']['username'] = "xxxxx";
$db['my_db']['password'] = "xxxxx";
$db['my_db']['database'] = "xxxxx";
$db['my_db']['dbdriver'] = "mysql";
$db['my_db']['dbprefix'] = "";
$db['my_db']['pconnect'] = TRUE;
$db['my_db']['db_debug'] = TRUE;
$db['my_db']['cache_on'] = FALSE;
$db['my_db']['cachedir'] = "";
$db['my_db']['char_set'] = "utf8";
$db['my_db']['dbcollat'] = "utf8_general_ci";
/* Default database */
$active_group = "default";
$active_record = TRUE;
$db['default']['hostname'] = "xxxxx";
$db['default']['username'] = "xxxxx";
$db['default']['password'] = "xxxxx";
$db['default']['database'] = "xxxxx";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

 

Una vez guardado este archivo, tendremos que cargar la base de datos que no es por defecto en el controlador de la siguiente forma:

$this->db_my_db = $this->load->database('my_db', TRUE);

 

Y en el modelo de la siguiente forma

$insert = $this->db_my_db->insert('xxx', $xxx);
 

Hacer una consulta mysql desde WordPress a una base de datos externa

Si eres de los que customizas mucho WordPress o simplemente necesitas hacer una consulta a una tabla externa de las bases de WordPress, entonces aquí tienes la solución.

Para ello tienes que utilizar la clase wpdb perteneciente a WordPress.

$dbh = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );

Para hacer una consulta, después de habernos conectado a la base de datos externa.

$my_table = 'tabla';
$query = "SELECT * FROM $mi_tabla";
$content = $dbh->get_results( $query );
if ( count($content) > 0 ) {
    foreach ( $content as $row ) {
        echo $row->info;
    }
}