обновить таблицу одним запросом - PullRequest
0 голосов
/ 28 апреля 2019

например, у меня есть одна таблица о сумме денег, и сумма может увеличиваться или уменьшаться. таблица currency_unit:

id = 1
name = dollar
amount = 1000

сумма обновления:

$change = 5000;

для обновления таблицы мне нужно написать два запроса: первый получить данные из таблицы, а второй обновить новыми данными.

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

контроллер:

$base = $this->base_model->get_data('currency_unit' , 'amount' , array('id'=> 1));
$data['amount'] = $base->amount + $change; // 1000 + 5000 = 6000
$this->base_model->update_data('currency_unit' , $data , array('id'=> 1));

модель:

function get_data($table , $select , $where){
$this->db->select($select);
$this->db->where($where);
$result = $this->db->get($table);
return $result->row();
}
function update_data($table , $data , $where){
$this->db->where($where);
$this->db->update($table , $data);
}

Есть ли способ обновить сумму одним запросом, а не двумя?

1 Ответ

0 голосов
/ 28 апреля 2019

Попробуйте, надеюсь, это будет работать

$this->db->set('amount', 'amount+500', FALSE);

ИЛИ

$this->db->set('amount', 'amount+'.$change, FALSE);

$this->db->where('id', 1);
$this->db->update('currency_unit');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...