CodeIgniter 3.0 -文件会话设置没有效果


CodeIgniter 3.0 - Files sessions settings have no effects

我正在尝试从CI 2升级应用程序。X到3.0。我遵循了迁移说明(http://www.codeigniter.com/userguide3/installation/upgrade_300.html),我的会话配置现在看起来像:

$config['sess_driver']             = 'files';
$config['sess_cookie_name']        = 'ci_session';
$config['sess_expiration']         = 1440;
$config['sess_save_path']          = __DIR__ .'/../session/';
$config['sess_match_ip']           = TRUE;
$config['sess_time_to_update']     = 300;
$config['sess_regenerate_destroy'] = FALSE;

然而,$config['sess_driver']似乎被覆盖到'database'某处,因为我得到了以下错误:

You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near 
'SET `user_data` = 'a:2:{s:9:'"user_data'";s:0:'"'"' at line 1

显然,我没有user_data列,因为我希望我的会话与文件一起工作。

我错过了什么明显的东西吗?

谢谢,

您将新的system/目录复制粘贴到旧目录上,而不是先删除旧目录…

注意:这可能不是你的错,因为用户指南现在(2015-07-31)不是很清楚。它将在3.0.1版本中更新,并附带关于此的说明。

在CI2

。x中,会话库位于system/libraries/session .php,而在CI3中,它有自己的目录,基类位于system/libraries/session/session .php。通过对旧版本框架的复制粘贴,您仍然拥有CI2版本的Session库,并且由于加载器的工作方式(它首先查找system/libraries/Library_name.php),您仍然使用它。

你还保留了旧的$config['sess_use_database']设置,它是启用的,这就是导致数据库查询执行的原因;否则cookie会被用来存储数据,你可能不会注意到任何东西。

或者您已经在application/libraries/Session.php中使用自己的库扩展/覆盖了库存库,但这似乎不太可能。