1

我正在使用$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'

有没有办法在没有引号的情况下生成 SET 子句count + 2

4

2 回答 2

3

谢谢,Maxime Morin,让我走上了正轨。根据CodeIgniter 文档,您可以通过将可选$escape参数设置为FALSE. 因此,我的问题的解决方案是:

$this->db->set("count", "count + $amount", FALSE); 
$this->db->where("id", $item_id);
$this->db->update("items", $data);
于 2012-12-14T15:16:13.223 回答
0

这是我在找到我接受的解决方案之前使用的解决方法

$query = $this->db->query("UPDATE `items` SET `count` = `count` + $amount WHERE `id` = $item_id");
于 2012-12-14T15:17:13.303 回答