codeigniter - 用一个查询更新表
问题描述
例如,我有一张关于金额的表格,金额可以增加或减少。表 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);
}
有什么方法可以用一个查询而不是两个查询来更新金额?
解决方案
试试这个希望它会工作
$this->db->set('amount', 'amount+500', FALSE);
或者
$this->db->set('amount', 'amount+'.$change, FALSE);
$this->db->where('id', 1);
$this->db->update('currency_unit');
推荐阅读
- loops - Kotlin 跳过循环迭代
- python - 将元素添加到 numpy 数组会更改输入值
- php - 当我从 $_SERVER 获取标题字段时,我应该使用 trim() 吗?
- break - q#中的'break'等价于什么?
- powershell - 使用 PowerShell 下载文件
- c++ - 主函数中的 C++ 私有变量访问
- javascript - 如果使用 JavaScript 插入 SVG,为什么从 SVG 链接的 CSS 不会加载?
- java - 蛇游戏中的Java ArrayIndexOutOfBoundException错误
- html - 如何垂直对齐 img 旁边顶部导航栏中的“电子邮件促销”文本以及其他文本链接?
- sas - SAS 导入不带标题的 XLS 文件