PHP版本升级到7.2.10后,CodeIgniter会话未写入数据库



我将PHP版本从5.6升级到7.2.10,突然将会话数据写入MySQL数据库停止工作(会话表为空(。我还将CodeIgniter版本升级到3.1.9(仅限系统文件夹(,但这并没有帮助。我认为问题可能出现在PHP(或MySQL(的某些配置中,因为我要做的第一件事是更改PHP.ini中的自动启动会话。当我从$this->config->item('sess_driver'(中检索值时,我得到了"数据库"。当我从$this->会话中检索值时,我得到:

object(CI_Session)[14]
  public 'userdata' => null
  protected '_driver' => string 'files' (length=5)
  protected '_config' => null
  protected '_sid_regexp' => null

这很奇怪,因为在旧的PHP版本中,我将"数据库"作为_driver值。看起来会话数据存储在文件中——当我请求$this->session->has_userdata('id'(时,我得到了正确的值,但它应该保存在数据库会话表中,但事实并非如此。这是我的配置部分:

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

有人遇到我的问题或知道解决办法吗?感谢

我可能会建议您解决方案。

  1. 转到codeigniter网站
  2. 下载最新版本的codeiginiter
  3. 提取它
  4. 将系统文件夹重命名为现有项目中的其他文件夹
  5. 粘贴新的系统文件夹,您就完成了

最新更新