Это моя модельная функция. Очевидно, что не рекомендуется смешивать 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);
}
Используя активную запись, вы можете переписать свой запрос на обновление, как показано ниже. Также вы можете использовать одно обновление вместо выполнения 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');
}
Других решений пока нет …