14
votes

I want to implement a SQL statement using codeigniter active record.

UPDATE tags SET usage = usage+1 WHERE tag="java";

How can I implement this using Codeigniter active records?

Regards

3

3 Answers

51
votes
$this->db->set('usage', 'usage+1', FALSE);
$this->db->where('tag', 'java');
$this->db->update('tags');
5
votes

You can also use something like this

$data = array('usage' => 'usage+1', *other columns*);
$this->db->where('tag', 'java');
$this->db->update('tags', $data);

UPDATE: $data was not being passed on to update

2
votes

I find its sometimes simpler to just write the SQL rather than having Active Record build it for me.

$sql = 'update tags set usage=usage+1 where tag=?';
$this->db->query($sql, array($tag));