在CodeIgniter中一行内增加文章视图

时间:2012-12-18 18:38:55

标签: php codeigniter activerecord

我的表格中有一个名为计数器的专栏

问题是如何将此列中的值增加为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分钟后。不过那是另一回事了 ;)。我需要完成这个问题。

1 个答案:

答案 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()中的第三个参数告诉它不要转义列名。
如果只需要增加,则无需获取视图数。