Как хранить сеансы базы данных в CodeIgniter с несколькими базами данных?

Я использую codeigniter и до даты, когда я использовал сеансы на основе файлов cookie .. но теперь размер сеансов увеличивается, поэтому мне нужно их хранить в базе данных.

У меня есть несколько баз данных (более 3), подключенных к моему приложению … Как я могу использовать таблицу ci_sessions для хранения сеансов?

когда я говорю $ config ['sess_use_database'] = TRUE; мое приложение не работает. отображается плоская белая страница.

Это связано с тем, что из нескольких подключений к базе данных codeigniter не находит точную базу данных для хранения сеансов.

Как я могу достичь того же? благодаря

Прошло некоторое время с тех пор, как этот вопрос был задан, но мне кажется, что нужен окончательный ответ.

Начиная с CodeIgniter 2.1.2

Когда загружается system/libraries/Session.php , она также загружает базу данных для использования с сеансами, если это указано.

Используемый по умолчанию код (строка 85):

 // Are we using a database? If so, load it if ($this->sess_use_database === TRUE AND $this->sess_table_name != '') { $this->CI->load->database(); } 

Это должно теоретически загружать базу данных по умолчанию. По какой-то причине это не сработало для меня. Мне пришлось изменить код, чтобы специально вызвать базу данных по умолчанию.

Код, который вы должны использовать, чтобы извлечь из базы данных по default :

 // Are we using a database? If so, load it if ($this->sess_use_database === TRUE AND $this->sess_table_name != '') { $this->CI->load->database('default', TRUE); } 

Если вы хотите использовать другую базу данных, просто измените default по default на имя базы данных, которую вы хотели бы использовать.

Примечание. Если вы загрузите другую базу данных до того, как вы вызовете данные сеанса, вам нужно будет снова указать свои данные сеанса. Сеанс будет продолжать пытаться извлечь из активной базы данных.

Рассматривая код сеанса из system/libraries/Session.php , можно увидеть, что он использует по умолчанию $this->db для подключения к базе данных для хранения сеансов.

Попробуйте изменить группы базы данных таким образом, что работает $this->db . Кроме того, вы можете расширить Session.php таким образом, чтобы вы могли передать ему группу базы данных для хранения сеансов.

Надеюсь, это поможет вам начать в правильном направлении.