CodeIgniter / PHP Active Record不会增加整数

时间:2010-09-05 14:38:22

标签: php mysql activerecord codeigniter

这是我在CodeIgniter的Active Record中的查询:

function calculate_invites($userid)
{
    $this->db->where('id', $userid)
               ->update('users', array('invites' => 'invites-1', 'sentinvites' => 'sentinvites+1'), FALSE);
}

字段invitessentinvites都是整数,但在运行函数后设置为0。这让我认为CodeIgniter正在将invites-1sentinvites+1作为字符串传递,但我认为将FALSE添加到结尾会阻止它这样做吗?

谢谢!

杰克

1 个答案:

答案 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');