How I can set a session in codeigniter 3 database? How I can set a session in codeigniter 3 database? codeigniter codeigniter

How I can set a session in codeigniter 3 database?


First of all CI3 session table and CI2 session table( Saving Session Data to a Database)structure is different

New session table structure

 CREATE TABLE IF NOT EXISTS `ci_sessions` (    `id` varchar(40) NOT NULL,    `ip_address` varchar(45) NOT NULL,    `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,    `data` blob NOT NULL,    PRIMARY KEY (id),    KEY `ci_sessions_timestamp` (`timestamp`));

Second They support old configuration variables with new configuration but it is better to use new configuration

$config['sess_driver'] = 'database';$config['sess_cookie_name'] = 'ci_sessions';$config['sess_expiration'] = 7200;$config['sess_save_path'] = 'ci_sessions';//its your table name name$config['sess_match_ip'] = FALSE;$config['sess_time_to_update'] = 300;

See more details at their docs

Few new feature(function) available for session library.

Remember Don't forget it to load via autoload.php or loading $this->load->library('session'); before use it.


If you added the "first line" (i.e. sess_table_name) to make it work, that is because your sess_driver value is set to database. Take a look at the list of supported drivers and you will see that for file based sessions, it will default to that. In other words, if you remove these lines, it should work:

$config['sess_table_name']          = 'ci_sessions';$config['sess_driver']              = 'database';


Remove that added line and set:

$config['sess_save_path'] = 'ci_sessions';

Rest of code should be ok.Link to docs.