Codeigniter主动记录帮助

时间:2010-05-05 09:19:08

标签: php mysql activerecord codeigniter

如果某个字段在更新请求中不为null,我试图将INT列递增1,目前我的这个更新也是列,

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?

3 个答案:

答案 0 :(得分:1)

尝试使用:

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

答案 1 :(得分: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);
}

好像它是null然后该值需要是?

答案 2 :(得分: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)
}