【问题标题】:Update the value of a field in database by 1 using codeigniter使用 codeigniter 将数据库中字段的值更新为 1
【发布时间】:2011-03-19 07:31:02
【问题描述】:

我想使用 codeigniter 活动记录来实现一条 SQL 语句。

UPDATE tags SET usage = usage+1 WHERE tag="java";

如何使用 Codeigniter 活动记录来实现这一点?

问候

【问题讨论】:

    标签: database activerecord codeigniter insert-update


    【解决方案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));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 2015-09-10
      相关资源
      最近更新 更多