我正确地写这个更新查询?

时间:2011-08-24 10:31:24

标签: php codeigniter

这是我在切换到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->设置正确吗?

此致

3 个答案:

答案 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)

使用updateDocs功能有多种变体。你的看起来并不是特别糟糕(但是如果没有特殊原因我不会绕过转义),也许您更喜欢使用数组(或对象)来提供正在更新的数据:

$data = array(
    'due_amount' => 'to_pay-'.$payment_amount,
);
$this->db->update('transaction', $data, sprintf('id = %d', $id));