这是我在CodeIgniter的Active Record中的查询:
function calculate_invites($userid)
{
$this->db->where('id', $userid)
->update('users', array('invites' => 'invites-1', 'sentinvites' => 'sentinvites+1'), FALSE);
}
字段invites
和sentinvites
都是整数,但在运行函数后设置为0。这让我认为CodeIgniter正在将invites-1
和sentinvites+1
作为字符串传递,但我认为将FALSE
添加到结尾会阻止它这样做吗?
谢谢!
杰克
答案 0 :(得分:18)
这不适用于update
,仅适用于set
。
这应该有效:
$this->db->where('id', $userid);
$this->db->set('invites', 'invites-1', FALSE);
$this->db->set('sentinvites', 'sentinvites+1', FALSE);
$this->db->update('users');
这也可能有用(user guide有点不清楚):
$this->db->where('id', $userid);
$this->db->set(array('invites' => 'invites-1', 'sentinvites' => 'sentinvites+1'), FALSE);
$this->db->update('users');