2010-05-05 5 views
0

Je suis en train d'incrémenter une colonne INT par 1 si un champ est non nul sur une demande de mise à jour, actuellement j'ai cette mise à jour trop colonnes,Codeigniter Active Record aide

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); 
} 

Ce que je dois savoir est comment je peux vérifier si la valeur envoyée au champ de journal est NULL et si c'est comment comment pourrais-je incrémenter une colonne appelée count par 1?

Répondre

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

Essayez d'utiliser ceci:

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

Que diriez-vous à l'aide d'un opérateur ternaire i.e.

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); 
} 

Comme si son nulle la valeur devrait être?

Questions connexes