2011-09-29 16 views
10

NOTA BENE: Sono nuovo di sviluppo webUtilizzando più database Entro CodeIgniter

SCENARIO: Sto costruendo un'applicazione web che ion_auth utilizza per gestire tutte le informazioni di utente/amministratore (utilizza database MySQL), e ciascuno l'utente ha il proprio database (anche MySQL) per scopi di applicazione core. Ho caricato automaticamente il database che sto utilizzando per ion_auth nel file applicaton/config/database.php all'interno di CodeIgniter. Sto usando il formato MVC standard (modelli individuali relativi a ciascun database).

PROBLEMA: Ho bisogno di sapere come utilizzare più database contemporaneamente in CodeIgniter in modo semplice ed efficiente. Devo collegare i due schemi di database insieme o CodeIgniter lo farà per me? Ci sono risorse là fuori che affrontano questo problema (ho avuto difficoltà a provare a trovarne uno)?

Grazie mille per tutto il vostro aiuto!

+1

Come si vorrebbe utilizzare più database? Per configurazione? Dal controller? Cambio manuale? – hakre

risposta

23

nel file di configurazione del database aggiungere il numero di gruppi di configurazione, come i numeri delle basi di dati:

$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'; 

quindi sul modello di inizializzare una variabile di classe:

private $db_b; 

e, nel contructor, imposta come segue

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

ora è possibile utilizzare il database b come al solito:

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

e, ovviamente, quello di default come segue:

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

Batti a me in pochi secondi! +1 –

+4

Assicurati di impostare '$ db ['default'] ['pconnect'] = FALSE;' – tpae

Problemi correlati