php - 如何使用事件记录模式在 codeigniter 中运行此 MySQL 查询

标签 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);

但结果是错误的。

我该怎么做?

最佳答案

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

例如:

$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)));

关于php - 如何使用事件记录模式在 codeigniter 中运行此 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28372247/

相关文章:

php - Codeigniter 模型多个连接语句返回最后一个语句

php - 在带有 SSL 的服务器上使用 Curl

php - 重写后 NGINX 第二个 limit_req 不工作

php - 使用PHP将基督教阳历转换为穆斯林农历

java - 使用 Spark 流从数据库流式读取

mysql - 查询在本地主机上运行良好,但在我们的服务器上非常慢

javascript - 从 json_encode 获取数据时变量未定义(函数 PHP)

php - 如何在 codeigniter 中为联合表添加分页

php - 如何在 PHP 文件中检查以表单形式提交并通过 AJAX 调用发送的值

php - 将 3 个表合并为一个并插入数据库