2015-10-30 37 views
1

从2.X升级到3.X的CodeIgniter后我开始以下问题缺少会话表

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; 
+0

显示您的数据库设置所有代码包含此$ db ['default'] ['dbprefix'] ='';' –

回答

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; 

确保您的数据库连接。

+0

乐意提供帮助。享受编码:) –