2010-09-05 12 views
8

Oto moje zapytanie, w Active Record CodeIgniter za:CodeIgniter/PHP Active Record nie będą zwiększać liczbę całkowitą

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

Pola invites i sentinvites są zarówno liczby całkowite, ale są ustawione na 0 po funkcja zostanie uruchomiona. To sprawia, że ​​zakładam, że CodeIgniter przechodzi invites-1 i sentinvites+1 jako ciągi znaków, ale myślałem, że dołączenie FALSE do końca zatrzymało to robi?

Dzięki!

Jack

+0

od Ci- Active Record is't działa prawie tak, jak oczekuje się AC do pracy ... tutaj polecone ci-user-guide [active_record] (http://codeigniter.com/user_guide/database/active_record.html#set) – teemitzitrone

Odpowiedz

18

ta nie działa z update, tylko z set.

To powinno działać:

$this->db->where('id', $userid); 
$this->db->set('invites', 'invites-1', FALSE); 
$this->db->set('sentinvites', 'sentinvites+1', FALSE); 
$this->db->update('users'); 

ten może pracować zbyt (the user guide jest nieco niejasny):

$this->db->where('id', $userid); 
$this->db->set(array('invites' => 'invites-1', 'sentinvites' => 'sentinvites+1'), FALSE); 
$this->db->update('users'); 
Powiązane problemy