Я обновил свою версию 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 я получаю «database» как значение _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;
Кто-нибудь встречает мою проблему или знает решение? Спасибо