Můžete to udělat, jak je uvedeno níže:
$this->db->where('id', $post['identifier']);
$this->db->set('votes', 'votes+1', FALSE);
$this->db->update('users');
Důvod, proč to funguje, je ten, že třetí (volitelný) parametr FALSE říká CodeIgniter, aby nechrání generovaný dotaz pomocí zpětných zaškrtnutí ('
). To znamená, že vygenerovaný SQL bude:UPDATE users SET votes= votes + 1 WHERE id= '44'
Pokud si všimnete, zpětná zaškrtnutí jsou odstraněna z '(votes+1)'
, což vytváří požadovaný efekt zvýšení atributu votes o 1.