2010-07-22 7 views

Odpowiedz

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

mała uwaga na które po prostu wyjaśnić, że jeśli ustawić parametr optioanl do FALSE, CodeIgniter nie będzie próbował chronić twoich nazw pól lub tabel za pomocą odsunięć. – jkilbride

+0

Kolejna mała uwaga, w pierwszym wierszu brakowało średnika :) – jeff

+0

Czy możesz użyć wielu set() w tej samej aktualizacji? –

0

znajdę jej czasami prościej po prostu napisać SQL zamiast Active Record budować go dla mnie.

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

Można również użyć coś jak ten

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

UPDATE: $ dane nie są przekazywane do aktualizacji

+1

nie zapomnij wysłać swoich '$ danych'. '$ this-> db-> update ('tags', $ data)' –

+0

nie działa dla mnie – abimelex

+0

Tutaj wklej swój kod. –