2010-05-05 2 views
0

Я пытаюсь увеличиваем столбец INT на 1, если определенное поле не равно нулю по запросу на обновление, в настоящее время у меня есть это обновление также колонны,Codeigniter Активная запись помощь

public function updateCronDetails($transaction_reference, $flag, $log) { 
    $data = array (
     'flag' => $flag, 
     'log' => "$log" 
    ); 

    $this->db->where('transaction_reference', $transaction_reference); 
    $this->db->update('sy_cron', $data); 
} 

Что мне нужно знать как я могу проверить, является ли значение, отправленное в поле журнала, NULL, и если это так, я могу увеличить столбец с именем count на 1?

ответ

0
public function updateCronDetails($transaction_reference, $flag, $log = NULL) 
{  
    // Only increment this field if not null 
    is_null($log) || $this->db->set('field', 'field+1', FALSE); 

    $this->db 
     ->set('flag', $flag) 
     ->set('log', $log) 
     ->where('transaction_reference', $transaction_reference) 
     ->update('sy_cron', $data) 
} 
1

Попробуйте использовать это:

$this->db->set('field', 'field+1', FALSE); 
0

Как об использовании троичной оператора т.е.

public function updateCronDetails($transaction_reference, $flag, $log) { 
    $data = array (
     'flag' => $flag, 
     'log' => (is_null($log))? 1 : $log, 
    ); 

    $this->db->where('transaction_reference', $transaction_reference); 
    $this->db->update('sy_cron', $data); 
} 

Как будто его нуль, то значение необходимо будет?

Смежные вопросы