активная запись в codeigniter в случае присвоения по значению

Это моя модельная функция. Очевидно, что не рекомендуется смешивать SQL-запрос и активную запись вместе. Как мне написать всю функцию, используя активную запись?

public function foo_bar_function($id, $date, $amount) {

$this->db->where('id', $id);
$this->db->set('date', $date, TRUE);
$this->db->set('amount', $amount, FALSE);
$this->db->update('table_foo');
$sql = "UPDATE table-foo set diff = total - " . $amount . " WHERE id = '" . $id . "'";
$this->db->query($sql);
}

1

Решение

Используя активную запись, вы можете переписать свой запрос на обновление, как показано ниже. Также вы можете использовать одно обновление вместо выполнения 2 запросов на обновление.

public function foo_bar_function($id, $date, $amount) {
$this->db->set('date', $date);
$this->db->set('amount', $amount);
$this->db->set('diff', 'total -'.$amount, FALSE);
$this->db->where('id', $id);
$this->db->update('table_foo');
}

See set() method of active record

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector