【问题标题】:CodeIgniter session not writing to the DB after PHP version upgrade to 7.2.10PHP 版本升级到 7.2.10 后 CodeIgniter 会话未写入数据库
【发布时间】:2019-04-18 10:58:11
【问题描述】:

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

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;

有人遇到我的问题或知道解决方案吗?谢谢

【问题讨论】:

  • 数据库中是否有包含正确(必填)字段的 Session 表?
  • 是的,我当然愿意。否则我会得到一个数据库错误。
  • 我认为他们将默认数据库更改为 MariaDB
  • 嗯。我认为应该在 CodeIgniter GitHub 存储库中提出这个问题,或者甚至将其作为问题发布
  • 我正在使用 CI v3.1.9 和 PHP v7.2.10,它工作正常。环境文件夹中是否有不是您显示的配置文件?这是protected '_driver' 会说'files' 但您显示的配置设置为“数据库”的一个(唯一?)逻辑原因。

标签: php mysql session codeigniter-3 php-7.2


【解决方案1】:

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

  1. 转到 codeigniter 网站。
  2. 下载最新版本的 codeiginter。
  3. 解压。
  4. 将系统文件夹重命名为现有项目中的其他名称。
  5. 粘贴新的系统文件夹就完成了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    相关资源
    最近更新 更多