database.php:
$db[\'default\'][\'hostname\'] = \"192.168.2.104\";
$db[\'default\'][\'username\'] = \"webuser\";
$db[\'default\'][\'password\
You don’t need to create separate database configurations if you only need to use a different database on the same connection. You can switch to a different database when you need to, like this:
$this->db->db_select($database2_name);
CodeIgbiter User Guide
You may try modifying function CI_Session() in session.php file.
Replace
$this->CI->load->database();
with this
$this->CI->db1 = $this->CI->load->database('default', TRUE);
$this->CI->db2 = $this->CI->load->database('db2', TRUE);
In this way, you need not load 2 dbs in all the model files but shall use them directly using objects.
$this->db1 would be accessing default group db and $this->db2 would be accessing db2 group db. (both db groups should have been defined in database.php)
Sundar
currently, codeigniter cannot connect to multiple database in persisten connection. so, you should turn of the persisten of your connections. you may can do this..
$db['default']['pconnect'] = FALSE;
$db['stats']['pconnect'] = FALSE;
I fix the problem changing the DB_driver.php on the framework.
In this function I add $this->db_select();
and you never lose your connection again when working with 2 databases.
function simple_query($sql)
{
if ( ! $this->conn_id)
{
$this->initialize();
}
$this->db_select();
return $this->_execute($sql);
}
Instead of applying the hack as mentioned by Camacho you can also set the 'pconnect'-flag in the database.php file to FALSE for all connections.
There is a bug in codeigniter. Inserting one line into a class will fix the whole thing. Here is the original source: http://koorb.wordpress.com/2007/11/16/codeigniter-connect-to-multiple-databases/
** This fix does not apply to PostgreSQL
Here is a copy just in case that site goes down.
The line number has changed. Here is the bug fix from codeigniter:
start bugfixDescription
all of the database calls go to the same database (last one initialized)
To fix the problem change the simple_query function in /system/database/DB_driver.php:
function simple_query($sql)
{
if ( ! $this->conn_id)
{
$this->initialize();
}
$this->db_select(); //<----------------- Added this line
return $this->_execute($sql);
}
This completely fixes the problem, so you can do stuff like this in a model
$this->legacy_db = $this->load->database('legacy', true);