使用 codeigniter 将数据库中字段的值更新为 1
Posted
技术标签:
【中文标题】使用 codeigniter 将数据库中字段的值更新为 1【英文标题】:Update the value of a field in database by 1 using codeigniter 【发布时间】:2011-03-19 07:31:02 【问题描述】:我想使用 codeigniter 活动记录来实现一条 SQL 语句。
UPDATE tags SET usage = usage+1 WHERE tag="java";
如何使用 Codeigniter 活动记录来实现这一点?
问候
【问题讨论】:
【参考方案1】:$this->db->set('usage', 'usage+1', FALSE);
$this->db->where('tag', 'java');
$this->db->update('tags');
【讨论】:
小注释只是为了澄清如果您将 optioanl 参数设置为 FALSE,CodeIgniter 将不会尝试使用反引号保护您的字段或表名称。 如果有人想要在执行更新后更新字段的值而不使用额外的查询 不可能的Ravinder。【参考方案2】:你也可以使用类似的东西
$data = array('usage' => 'usage+1', *other columns*);
$this->db->where('tag', 'java');
$this->db->update('tags', $data);
更新:$data 没有被传递给更新
【讨论】:
别忘了发送您的$data
。 $this->db->update('tags', $data)
@Srihari Goud 为什么它不起作用 '$this->db->set('cu_employee_sisa_cuti',"cu_employee_sisa_cuti+cu_employee_jatah_cuti"); '
你从哪里得到$this->db->set
的方法?没有这样的..我们必须准备一个数组并在$this->db->update('tags', $data);
中使用【参考方案3】:
我发现有时只编写 SQL 而不是让 Active Record 为我构建它更简单。
$sql = 'update tags set usage=usage+1 where tag=?';
$this->db->query($sql, array($tag));
【讨论】:
以上是关于使用 codeigniter 将数据库中字段的值更新为 1的主要内容,如果未能解决你的问题,请参考以下文章
只要新值与当前值不同,Oracle SQL 将字段的值更改为列表中的其他值?