这是我在切换到codeigniter之前使用的SQL查询
UPDATE transaction SET due_amount = to_pay-$payment_amount WHERE id = '$id'
使用codeigniter
$this->db->set('due_amount', 'to_pay-'.$payment_amount, FALSE);
$this->db->where('id', $id);
$result = $this->db->update('transaction');
在codeigniter代码中的我写的是$ this-> db->设置正确吗?
此致
答案 0 :(得分:1)
你应该这样做:
$this->db->where('id', $id);
$result = $this->db->update('transaction',array('due_amount'=>'to_pay-'.$payment_amount));
希望这有帮助。
答案 1 :(得分:0)
我认为这可能是$this->db->set
的问题
更新codeignitor中内容的标准方法是
$data = array(
'title' => $title,
'name' => $name,
'date' => $date
);
$this->db->where('id', $id);
$this->db->update('mytable', $data);
<强>产地:强> 更新mytable SET title ='{$ title}',name ='{$ name}',date ='{$ date}' WHERE id = $ id
答案 2 :(得分:0)
使用update
Docs功能有多种变体。你的看起来并不是特别糟糕(但是如果没有特殊原因我不会绕过转义),也许您更喜欢使用数组(或对象)来提供正在更新的数据:
$data = array(
'due_amount' => 'to_pay-'.$payment_amount,
);
$this->db->update('transaction', $data, sprintf('id = %d', $id));