我的表格中有一个名为计数器的专栏
问题是如何将此列中的值增加为1,因此在控制器或模型中我将使用update db函数。
E.g。我在考虑这样的事情:
$id = 5; //article id (I will get that from the url or db, no problem with that)
$this->db->update("current counter column value plus one where id column equals $id ");
让我们假设我收到文章#of views:
$this->db->select_sum("counter")->get("articles");
我知道我需要验证用户的IP,例如我认为不是每个页面加载,而是仅在5分钟后。不过那是另一回事了 ;)。我需要完成这个问题。
答案 0 :(得分:2)
您可以使用常规查询(带有绑定):
$sql = "UPDATE articles SET counter = counter + 1 WHERE id = ?";
$this->db->query($sql, array($id));
或者,使用AR:
$query = $this->db->update('articles')
->set('counter','counter+1', FALSE)
->where('id', $id);
FALSE作为set()
中的第三个参数告诉它不要转义列名。
如果只需要增加,则无需获取视图数。