Codeigniter Активная запись справки - PullRequest
0 голосов
/ 05 мая 2010

Я пытаюсь увеличить столбец 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 ]

1 голос
/ 05 мая 2010

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

$this->db->set('field', 'field+1', FALSE);
0 голосов
/ 05 мая 2010
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)
}
0 голосов
/ 05 мая 2010

Как насчет использования троичного оператора, т. Е.

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

Как если бы его ноль, тогда значение должно быть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...