我正在使用$this->db->update();
创建更新查询,该查询将存储在变量$amount
中的值添加到列count
中的值。我的函数调用目前看起来像这样:
$data = array('count' => 'count + '.$amount);
$this->db->where('id', $item_id);
$this->db->update('items', $data);
但是,这会生成以下损坏的SQL:
UPDATE `items` SET `count` = 'count + 2' WHERE `id` = '2'
有没有办法在count + 2
附近生成没有引号的SET子句?
答案 0 :(得分:3)
谢谢,Maxime Morin,让我走上正轨。根据{{3}},您可以创建一个" set"通过将可选的$escape
参数设置为FALSE
,不带引号的子句。因此,我的问题的解决方案是:
$this->db->set("count", "count + $amount", FALSE);
$this->db->where("id", $item_id);
$this->db->update("items", $data);
答案 1 :(得分:0)
这是我使用的解决方法,直到找到我接受的解决方案
$query = $this->db->query("UPDATE `items` SET `count` = `count` + $amount WHERE `id` = $item_id");