如何使用活动记录模式在codeigniter中运行此MySQL查询

时间:2015-02-06 18:18:47

标签: php mysql codeigniter activerecord

我正在使用ci并使用其活动记录模式来访问数据库。我想使用像

这样的语句更新表
UPDATE employee_barcode set `count` = `count` + 1
where barcode_id = 2

我尝试使用像这样的更新语句

$data = array(
            'count' => 'count' + 1,
        );

$this->db->where('barcode_id', 2);
$this->db->update('employee_barcode', $data);

但结果是错误的。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

这不起作用,因为$this->db->update无法获得count的值,因此无法为其添加1。您应该使用count获取$this->db->select值,然后继续更新值。

例如:

$this->db->where('barcode_id', 2);
$this->db->select('count');
$query = $this->db->get('employee_barcode');
$row = $query->row();
$this->db->where('barcode_id', 2);
$this->db->update('employee_barcode', array('count' => ($row->count + 1)));

答案 1 :(得分:0)

试试这个..

$this->db->set('count', '`count+1`', FALSE)
$this->db->where('barcode_id', 2);
$this->db->update('employee_barcode');