2011-09-29 11 views
10

RENUNCIA: Soy nuevo en el desarrollo webEl uso de múltiples bases de datos dentro CodeIgniter

ESCENARIO: Estoy construyendo una aplicación web que utiliza ion_auth para gestionar toda la información de usuario/administrador (utiliza base de datos MySQL), y cada uno el usuario tiene su propia base de datos (MySQL también) para fines de aplicaciones principales. He cargado automáticamente la base de datos que estoy usando para ion_auth en el archivo applicaton/config/database.php dentro de CodeIgniter. Estoy usando el formato MVC estándar (modelos individuales correspondientes a cada base de datos).

NÚMERO: Necesito saber cómo usar múltiples bases de datos a la vez dentro de CodeIgniter de manera fácil y eficiente. ¿Debo unir los dos esquemas de base de datos o lo haré CodeIgniter por mí? ¿Hay algún recurso que solucione este problema (he tenido problemas para encontrar uno)?

¡Muchas gracias por toda su ayuda!

+1

¿Cómo le gustaría utilizar varias bases de datos? Por la configuración? Por el controlador? ¿Cambiar manualmente? – hakre

Respuesta

23

en su archivo de configuración de base de datos añadir tantos grupos de configuración como el número de bases de datos:

$db['a']['hostname'] = 'localhost'; 
$db['a']['username'] = 'user'; 
$db['a']['password'] = 'pw'; 
$db['a']['database'] = 'db1'; 
... 

$db['b']['hostname'] = 'localhost'; 
$db['b']['username'] = 'user'; 
$db['b']['password'] = 'pw'; 
$db['b']['database'] = 'db2'; 
... 

//set the default db 
$active_group = 'a'; 

continuación del modelo de inicializar una variable de clase:

private $db_b; 

y, en el contructor, configúrelo como sigue

__construct() 
{ 
    ... 
    $this->db_b = $this->load->database('b', TRUE); 
} 

ahora usted puede utilizar la base de datos b como de costumbre:

$this->db_b->query('YOUR QUERY'); 

y, obviamente, la opción por defecto de la siguiente manera:

$this->db->query('YOUR QUERY'); 
+0

¡Pásame por segundos! +1 –

+4

Asegúrese de establecer '$ db ['default'] ['pconnect'] = FALSE;' – tpae

Cuestiones relacionadas