2010-09-05 6 views
8

Voilà ma requête, dans Active Record de CodeIgniter:CodeIgniter/PHP Active Record ne sera pas incrémenter un entier

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

Les champs invites et sentinvites sont tous deux entiers, mais sont mis à 0 après la fonction est exécutée. Cela me fait présumer que CodeIgniter passe invites-1 et sentinvites+1 en tant que chaînes, mais je pensais ajouter FALSE à la fin l'a fait faire cela?

Merci!

Jack

+0

depuis Ci- Active Record is't travaillant presque la façon dont je AC attend un pour travailler ... voici la référence ci-utilisateur-guide [active_record] (http://codeigniter.com/user_guide/database/active_record.html#set) – teemitzitrone

Répondre

18

Cela ne fonctionne pas avec update, seulement avec set.

Cela devrait fonctionner:

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

Cela peut fonctionner aussi (le user guide est un peu clair):

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