一尘不染

如何在Codeigniter 3数据库中设置会话?

mysql

我正在使用新版本(3.0.0)。CodeIgniter的问题,我遇到了一个新问题,我的会话无法正常工作。我的意思是,控制器中的代码是正确的,因为没有错误,但是,当我尝试在视图中打印PHP变量时,什么也没有。

我在MySQL服务器中检查了我的表,什么也没有,我现在不出什么问题了。我把我的代码config.php。(我不太了解这个新版本中的很多内容)

$config['sess_table_name']              = 'ci_sessions';
$config['sess_driver']              = 'database';
$config['sess_cookie_name']             = 'ci_session';
$config['sess_expiration']          = 7200;
$config['sess_save_path']               = NULL;
$config['sess_match_ip']                = FALSE;
$config['sess_time_to_update']      = 300;
$config['sess_regenerate_destroy']  = FALSE;

我必须在“ make”会话中添加第一行,但我不知道该配置是否正确以在数据库中进行会话。

如果有人有相同的问题,请帮助我:(。我的Session类尚未编辑。


阅读 269

收藏
2020-05-17

共1个答案

一尘不染

首先,CI3会话表和CI2会话表(将会话数据保存到数据库)的结构不同

新的会话表结构

 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`)
);

第二,它们支持新配置的旧配置变量,但是最好使用新配置

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

在他们的文档中查看更多详细信息

很少有新功能可用于会话库。

记住 不要忘记通过autoload.php加载它,或者$this->load->library('session');在使用前加载它。

2020-05-17