CI_session和错误号码:1054(未知列...)

时间:2014-02-25 12:08:01

标签: codeigniter codeigniter-2

我遇到了ci_session的问题。当我使用Active Record创建查询并使用会话时,它会抛出错误号码:1054。 它是由Session.php引起的。我正在使用数据库会话,当它执行sess_write()时,它会抛出错误。

我可以创建$ this-> db的新实例吗? 错误在第行。 Session.php中的289

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

在我调用$ this-> session之前,在我的代码中设置$ this-> CI-> db-> order_by('something'),这是我的问题。

编辑(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));

2 个答案:

答案 0 :(得分:0)

我明白了。

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

必须在执行你自己的CRUD之前/之后使用($ this-> db-> ...)。

答案 1 :(得分:0)

在您的控制器中,您必须重置数据库查询。

$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');