试图更新会话表中所有会话ID的会话数据,但已经挣扎了几个小时。
$_data = array('sess_data' => 'abc');
$this->db->where('sess_id', $_sid);
$this->db->update($_table, $_data);
下面的代码给了我一个值1,这表明上面的代码确实有效。
$this->db->affected_rows();
但是当我通过phpmyadmin查看数据库时,没有任何更新。没有生成mysql错误消息。请告知如何进一步进行。
已编辑
UPDATE `sessions` SET `sess_data` = 'abc' WHERE `sess_id` = 'skavnhgk84712r06npem76snu2'
更新:
奇怪的是,今天我又添加了2条会话记录,它只更新了第二条&第3条记录,第1条记录不变。为什么会这样?我使用foreach循环,下面是生成的查询。
UPDATE `sessions` SET `sess_data` = 'ABC' WHERE `sess_id` = 'skavnhgk84712r06npem76snu2' no success!
UPDATE `sessions` SET `sess_data` = 'ABC' WHERE `sess_id` = 'skavnhgk84712r06npem76snu3' success
UPDATE `sessions` SET `sess_data` = 'ABC' WHERE `sess_id` = 'skavnhgk84712r06npem76snu4' success
我认为这应该有效。
$data = array(
'title' => $title,
'name' => $name,
'date' => $date
);
$this->db->where('id', $id);
$this->db->update('mytable', $data);
欲了解更多参考信息,请访问此网站:
http://ellislab.com/codeigniter/user-guide/database/active_record.html