2012-04-16 90 views
0

我的網站使用會話,我已經配置它將信息保存到數據庫,以允許我保存更大量的用戶數據。 該網站還連接到MySQL和MSSQL數據庫以檢索用戶的信息。會話數據庫位於MySQL數據庫中,並且此部分正在工作。保存到codeigniter中的會話表

該網站的邏輯是: 1.用戶搜索的東西,搜索按鈕附加到一些jQuery代碼,它將搜索詞發送到我的控制器中的2個功能。
2.函數1訪問MSSQL數據庫,獲取數據,將查詢和查詢結果保存到會話中,並將查詢結果返回給View。 3.除查詢MySQL數據庫外,功能2完全相同。

功能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代碼工作!

最後,查詢的結果集很小。即使如此,我將ci_sessions表中的'user_data'字段的數據類型從TEXT更改爲MEDIUMTEXT,以允許將更多信息存儲在那裏。

任何人都可以幫忙嗎?

謝謝!

回答

1

將數據存儲到會話中時,必須將其序列化。 $ query-> result_array()的結果是一個數組,當試圖將它作爲一個字符串存儲時可能會造成一些麻煩。

嘗試調用serialize並反序列化以在推入和退出會話時保持數據結構不變。

+0

會議和jQuery笨中的會話代碼自動處理序列化和非序列化功能解決了這個問題。 – ShaneH 2012-04-16 12:49:05