我的网站使用Session,我已将其配置为将信息保存到数据库,以便我可以保存更多的用户数据。 该站点还连接到MySQL和MSSQL数据库以检索用户的信息。 Session数据库位于MySQL数据库中,这部分正在运行。
该网站的逻辑是: 1.用户搜索某些内容时,搜索按钮附加到某些jQuery代码上,该代码将搜索项发送到我的控制器中的2个函数 2.功能1访问MSSQL数据库,获取数据,将查询和查询结果保存到会话中,并将查询结果返回给View。 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代码不会将数据保存到会话表。如果我删除了Function 2代码,那么Function 1代码就可以了!
最后,查询的结果集很小。即便如此,我还是将ci_sessions表中'user_data'字段的数据类型从TEXT更改为MEDIUMTEXT,以允许在那里存储更多信息。
有人可以帮忙吗?
谢谢!
答案 0 :(得分:1)
将数据存储到会话中时,必须将其序列化。 $ query-> result_array()的结果是一个数组,在尝试将其存储为字符串时可能会造成一些麻烦。
尝试调用serialize并反序列化,以便在将事物推入和调出会话时保持数据结构的完整性。
答案 1 :(得分:0)
使用CodeIgniter本机会话解决它 http://codeigniter.com/wiki/Native_session
看来,CodeIgniter中的Sessions和jQuery存在一些问题