-
Notifications
You must be signed in to change notification settings - Fork 0
ci session specific database
I made some improvements to the session library so you can use a specific database. The reason for this arrangement is that in my development I'm managing multiple databases (more than two), and when you change a driver model, should change the name of the connection in the model, so it does not affect the session CI. It is a simple but effective change. I hope you take advantage.
You must to create a library called MY_Session.php with the following changes:
class MY_Session extends CI_Session{
add two variables: $database_name and oDb. $database_name is the database name and oDb is the object database var $CI; var $now; var $database_name = ''; //database name var $oDb ;
In the constructor MY_Session change the following lines: // Are we using a database? If so, load it if ($this->sess_use_database === TRUE AND $this->sess_table_name != '') { $this->CI->load->database(); }
by
// Are we using a database? If so, load it if ($this->sess_use_database === TRUE AND $this->sess_table_name != '') { $this->oDb = $this->CI->load->database($this->database_name,TRUE); }
Then change all the lines when are making database connection whith $this->oDb:
$this->CI->db->where('session_id', $session['session_id']);
by
$this->oDb->where('session_id', $session['session_id']);
To specify the database, add the following line in the file config.php:
$config['database_name'] = 'database_name';
This specify the group name from the file database.php
The library and functions works as usual. Also, you can disable de database, if you want.
The file my_session.php is attached. File:MY_Session.zip
- Original author: Derek Jones
- How to extend helpers: See User Guide
- Modified by: Thomas Stapleton (id, classes, selected country option and all option)
- Modified by: Bradley De-Lar (construct, setLayout example)