例如,我有一张关于货币数量的表,该数量可以增加或减少。 表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);
}
我可以通过一种查询而不是两种查询来更新金额吗?
答案 0 :(得分:0)
尝试这个希望能奏效的
$this->db->set('amount', 'amount+500', FALSE);
OR
$this->db->set('amount', 'amount+'.$change, FALSE);
$this->db->where('id', 1);
$this->db->update('currency_unit');