首页 > 解决方案 > 来自另一个字段的 Codeigniter 查询更新集

问题描述

这是我的代码

                    $data = [
                        'take' => 100,
                        'available' => 'plan - ' . 100
                    ];
                    $this->db->where('id', 1);
                    $this->db->update('tb_planner', $data);

我得到的查询

UPDATE tb_planner SET take = '100', available = 'plan - 100' WHERE id = '1'

这是一个错误,因为 'available' 设置不是 int。

标签: mysqlcodeigniter

解决方案


您需要第三个FALSE参数来禁用查询生成器生成的引号转义,并手动将反引号括在表字段名称中:

$this->db->set('take', 100);
$this->db->set('available', '`plan`- 100', FALSE);
$this->db->where('id', 1);
$this->db->update('tb_planner');

推荐阅读