Como conectar a multiples bases de datos con CodeIgniter


Basado en un comentaro de Rene Olivo en el grupo de Deverlopers Do en el cual decia que tenia problemas para conectar con dos base de datos, me he motivado a escribir este tutorial.

El archivo a editar para tener nuestra configuracion es el database.php y esta localizado en  “application/config/database.php“, dicho esto, los cambios son super sencillos:

Nuestra primera base de datos:


$active_group = "test";
$active_record = TRUE;

$db[‘test’][‘hostname’] = “localhost”;
$db[‘test’][‘username’] = “root”;
$db[‘test’][‘password’] = “”;
$db[‘test’][‘database’] = “database_name”;
$db[‘test’][‘dbdriver’] = “mysql”;
$db[‘test’][‘dbprefix’] = “”;
$db[‘test’][‘pconnect’] = TRUE;
$db[‘test’][‘db_debug’] = FALSE;
$db[‘test’][‘cache_on’] = FALSE;
$db[‘test’][‘cachedir’] = “”;
$db[‘test’][‘char_set’] = “utf8”;
$db[‘test’][‘dbcollat’] = “utf8_general_ci”;
$db[‘test’][‘swap_pre’] = “”;
$db[‘test’][‘autoinit’] = TRUE;
$db[‘test’][‘stricton’] = FALSE;

Nuestra segunda base de datos:


$active_group = "default";
$active_record = TRUE;

$db[‘default’][‘hostname’] = “localhost”;
$db[‘default’][‘username’] = “root”;
$db[‘default’][‘password’] = “”;
$db[‘default’][‘database’] = “database_name_2”;
$db[‘default’][‘dbdriver’] = “mysql”;
$db[‘default’][‘dbprefix’] = “”;
$db[‘default’][‘pconnect’] = TRUE;
$db[‘default’][‘db_debug’] = FALSE;
$db[‘default’][‘cache_on’] = FALSE;
$db[‘default’][‘cachedir’] = “”;
$db[‘default’][‘char_set’] = “utf8”;
$db[‘default’][‘dbcollat’] = “utf8_general_ci”;
$db[‘default’][‘swap_pre’] = “”;
$db[‘default’][‘autoinit’] = TRUE;
$db[‘default’][‘stricton’] = FALSE;

Lo unico que estamos haciendo aqui duplicando una vez mas la configuracion que viene por defecto.

Y para llamar una base datos especifica:

$this->load->database("default");

Enlace relacionado: Documentacion CodeIgniter

Anuncios

6 comentarios on “Como conectar a multiples bases de datos con CodeIgniter”

  1. tecnosoft dice:

    hay un error no definiste el ambito de la cuenta test, dice lo mismo default por ende les dara un error al intentar correr dicho codigo

  2. asinox dice:

    Si, gracias, Rene igual me lo dijo por Facebook 🙂

  3. Como se dice, Gracias por las ayudas 🙂

    Pero eso es codeigniter elemental. Hay que ver cual era el error que le estaba dando.

  4. uhmmm lo de poner la coma después de la DB que vas a usar es por…? me queda la duda 😉

  5. Bueno ahora que me tocó hacerlo podría poner algo como esto:
    $this->db_test = $this->CI->load->database(‘test’, TRUE);
    Cuando quiera usar la default pues usa $this->db->LOQUESEA;
    cuando quier usar la test $this->db_test->LOQUESEA;

    Lo pongo porqué me quedé pensando unos segundos como la iba a llamar hasta que me tocó hacerlo justo ahora mismo.

    Gracias Asinox


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s