Сессия CodeIgniter не записывается в БД после обновления версии PHP до 7.2.10

Я обновил свою версию 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;

Кто-нибудь встречает мою проблему или знает решение? Спасибо

у вас есть таблица сеансов в базе данных с правильными (обязательными) полями?

Kagiso Marvin Molekwa 15.11.2018 12:33

Да, конечно, я делаю. В противном случае я бы получил ошибку БД.

mesnicka 15.11.2018 12:52

Я думаю, они изменили базу данных по умолчанию на MariaDB

Lithilion 15.11.2018 13:03

мхх. Я думаю, что этот вопрос следует задать или, возможно, даже опубликовать как проблему в репозитории CodeIgniter на GitHub

Kagiso Marvin Molekwa 15.11.2018 13:48

Я использую CI v3.1.9 и PHP v7.2.10, и он отлично работает. Есть ли в папке среды файл конфигурации, отличный от того, который вы показываете? Это одна (единственная?) Логическая причина, по которой protected '_driver' сказал бы 'files', но показываемая вами конфигурация установлена ​​как «база данных».

DFriend 15.11.2018 21:44

@DFriend Все произошло, когда я обновил свой вампсервер до 3.1.4. Может мне что-то поменять в php.ini или ...?

mesnicka 20.11.2018 10:23

С какой версии обновлялись до 3.1.4?

DFriend 20.11.2018 15:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
7
257
1

Ответы 1

Я могу предложить вам решение.

  1. Перейдите на сайт codeigniter.
  2. скачать последнюю версию codeiginter.
  3. извлеките его.
  4. сделать переименовать системную папку во что-нибудь еще в существующем проекте.
  5. вставьте новую системную папку, и все готово.

Другие вопросы по теме