2012-04-16 3 views
0

Мой сайт использует сеанс, и я настроил его для сохранения информации в базе данных, чтобы я мог сохранять большие объемы пользовательских данных. Сайт также подключается к базе данных MySQL и MSSQL для извлечения информации для пользователя. База данных сеанса находится в базе данных MySQL, и эта часть работает.Сохранение таблицы сеанса в codeigniter

Логика сайта: 1. Пользователь ищет что-то, кнопка поиска прикреплена к некоторому коду jQuery, который отправляет поисковый запрос на 2 функции в моем контроллере.
2. Функция 1 обращается к базе данных MSSQL, получает данные, сохраняет запрос и результаты запроса в сеанс и возвращает результаты запроса в представление. 3. Функция 2 выполняет то же самое, за исключением того, что запрашивает базу данных MySQL.

Функция 1 делает код:

$this->session->set_userdata('get_function1_query',$lastquery); 
$this->session->set_userdata('get_function1_result',$query->result_array()); 

Функция 2 делает код:

$this->session->set_userdata('get_function2_query',$lastquery); 
$this->session->set_userdata('get_function2_result',$query->result_array()); 

Проблема заключается в том, что код функции 1 не сохраняет данные в таблице сеансов. Если я удалю код функции 2, то работает код функции 1!

И, наконец, результирующие наборы запросов невелики. Тем не менее я изменил тип данных поля user_data в таблице ci_sessions от TEXT до MEDIUMTEXT, чтобы можно было хранить там больше информации.

Может ли кто-нибудь помочь?

Спасибо!

ответ

1

При хранении данных в сеансе он должен быть сериализован. результаты $ query-> result_array() - это массив, который может создавать определенные проблемы при попытке сохранить его как строку.

попробуйте позвонить serialize и несериализовать, чтобы сохранить целостность структуры данных при нажатии на вещи в и из сеансов.

+0

Код сеанса в CodeIgniter обрабатывает сериализации и функции ип-сериализации автоматически. – ShaneH

Смежные вопросы