Vous pouvez faire comme indiqué ci-dessous :
$this->db->where('id', $post['identifier']);
$this->db->set('votes', 'votes+1', FALSE);
$this->db->update('users');
La raison pour laquelle cela fonctionne est que le troisième paramètre FALSE (facultatif) indique à CodeIgniter de ne pas protéger la requête générée avec des backticks ('
). Cela signifie que le SQL généré sera :UPDATE users SET votes= votes + 1 WHERE id= '44'
Si vous remarquez, les backticks sont supprimés de '(votes+1)'
, ce qui produit l'effet souhaité d'incrémentation de l'attribut votes de 1.