2014-02-25 102 views
0

我遇到了ci_session問題。當我使用Active Record創建查詢並使用會話時,它會拋出錯誤編號:1054. 它是由Session.php引起的。我使用數據庫會話,當它執行sess_write()時,它會拋出錯誤。CI_session和錯誤編號:1054(未知列...)

我可以創建$ this-> db的新實例嗎? 錯誤是在行號。在session.php文件

$this->CI->db->update($this->sess_table_name, array('last_activity' => $this->userdata['last_activity'], 'user_data' => $custom_userdata)); 

289在這個地方設置$這個 - > CI-> DB-> ORDER_BY( '東西'),從我的代碼,在我調用$這 - >會話,這是我的問題。

EDIT(13:12):

Unknown column 'contract.created' in 'order clause' 

UPDATE `ci_sessions` SET `last_activity` = 1393330303, `user_data` = 'some_data' WHERE `session_id` = 'ea330d7194f902b6b38b88d509766560' ORDER BY `contract`.`created` DESC LIMIT 30 

Filename: C:\Apache24\htdocs\Trokadero_v5\system\database\DB_driver.php 

編輯2:

我肯定,它是由Active Record的發生,因爲AR任務的順序是:

My_controller.php

$this->db->order_by('contract.created', 'DESC'); 
$this->session->set_flashdata('order_by_direction', 'DESC'); 

然後在Session.php中執行,用我自己的order_by子句

$this->CI->db->update($this->sess_table_name, array('last_activity' => $this->userdata['last_activity'], 'user_data' => $custom_userdata)); 
+0

檢查您的表列名稱併發布有問題的完整錯誤消息。 –

+0

在代碼中按行刪除命令,因爲它不是更新查詢所必需的。 –

+0

在您的控制器中註釋掉order_by行。 –

回答

0

我明白了。

$this->session->userdata(); 
$this->session->set_userdata(); 
etc. 

務必在執行您自己的CRUD($ this-> db - > ...)之前/之後使用。

0

在你的控制器中,你必須重置db查詢。

$this->db->order_by('contract.created', 'DESC'); 
// add line of code to get data. After getting data, reset the db object. 
$this->db->_reset_write(); 
$this->session->set_flashdata('order_by_direction', 'DESC'); 
相關問題