我遇到了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));
答案 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');