No estoy seguro de si se llama a este "mejor" manera, pero un manera, tal como se describe en el tutorial, es esto,
en el archivo de base de datos, usted tiene la configuración por defecto, una parte del cual es:
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "user";
$db['default']['password'] = "database";
$db['default']['database'] = "db1";
ahora puede crear otro grupo, digamos que llamarlo el grupo 1 y que desea que tenga todo lo mismo que la configuración de base de datos por defecto, excepto el nombre, por lo que puede hacer
$db['group1']=$db['default'];
$db['group1']['database']="db2";
entonces, cuando se quiere utilizar la segunda base de datos, sólo tiene que ir
$DB2 = $this->load->database('group1', TRUE);
y luego, en lugar de $this->db->foo()
, que va a hacer $DB2->foo()
alternativamente (como se sugiere en los comentarios de acuerdo sbaaaang), se puede hacer $this->db=$DB2;
para mantener todo igual
y se puede extender esto a varios grupos como éste
$DB1 = $this->load->database('group1', TRUE);
$DB2 = $this->load->database('group2', TRUE);
...
$DBn = $this->load->database('groupn', TRUE);
Creo que está bien, entonces puedo configurar el grupo db a utilizar en el modelo de construcción de – sbaaaang
$ this-> db = $ this-> load-> base de datos ('grupo1', VERDADERO); – sbaaaang
Esto se ve bien. Pero, ¿no hay una forma simple de cambiar el nombre de la base de datos y no toda la configuración? Algo así como lo usamos en core php, 'mysql_select_db (dbname)'. Como en mi caso, solo necesito cambiar el nombre de db y todos mis dbs están en el mismo servidor. – user3526