codeigniter 3.x中缺少会话表

时间:2015-10-30 06:13:03

标签: php codeigniter session

从2.x更新到codeigniter 3.x后,我开始遇到以下问题

Error Number: 1146

Table 'databaseName.prefix_' doesn't exist

UPDATE `prefix_` SET `last_activity` = 1446185100, `user_data` = 'a:2:{s:9:\"user_data\";s:0:\"\";s:13:\"flash:new:msg\";s:96:\"

Invalid username and password or Organization!
\";}' WHERE `session_id` = '9a1bb9c4241d7ee2af0fc3384e7852f9'
Filename: libraries/Session.php

Line Number: 305

我已经更新了配置文件,我的会话配置变量如下

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

1 个答案:

答案 0 :(得分:1)

您必须在数据库中创建表

运行此查询

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(45) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);

application/config/config.php

中更改此设置
$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = TRUE; # change this to TRUE
$config['sess_table_name']      = 'ci_sessions'; #table name
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;
  

确保您的数据库已连接。