Я обновил свою версию 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;
Кто-нибудь встречает мою проблему или знает решение? Спасибо
Да, конечно, я делаю. В противном случае я бы получил ошибку БД.
Я думаю, они изменили базу данных по умолчанию на MariaDB
мхх. Я думаю, что этот вопрос следует задать или, возможно, даже опубликовать как проблему в репозитории CodeIgniter на GitHub
Я использую CI v3.1.9 и PHP v7.2.10, и он отлично работает. Есть ли в папке среды файл конфигурации, отличный от того, который вы показываете? Это одна (единственная?) Логическая причина, по которой protected '_driver' сказал бы 'files', но показываемая вами конфигурация установлена как «база данных».
@DFriend Все произошло, когда я обновил свой вампсервер до 3.1.4. Может мне что-то поменять в php.ini или ...?
С какой версии обновлялись до 3.1.4?






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