Codeigniter在使用活动记录检索时更新数据库中的列


Codeigniter update a column in a database while retrieving with activerecords

我正在学习在CodeIgniter 2.x中创建博客。我想要的是——当用户点击博客页面上的链接readmore时,它会将他重定向到具有相应id的页面,向他展示一篇完整的文章。

现在,在content_model.php中从数据库检索$query->row();时,我想同时更新数据库中的viewed列。因此,它将显示35 views,而不是显示他例如34 views,当有人打开同一链接时,它将再显示一个36 views

在不受黑客攻击的情况下,最好的方法是什么?

提前感谢您的帮助。

当您使用CI框架从数据库检索数据时,您需要检查以下内容:

    if ($result_from_get_function->num_rows()>0){
    return   $this->updateViewColoumnByOne();
    }else{
    return false;
    }
    function updateViewColoumnByOne(){
    //retrieve number of view in view column, suppose 12.
    //plus one with it; 12+1=13
   //update it.
   //again retrieve the new update number of views
   //and return.
   }

我想这对你有帮助。

这应该很容易。当有人试图阅读帖子时,就在您检索帖子信息之前,请更新数据库中的计数视图。执行类似的查询

UPDATE `posts` SET `views` = `views` + 1;

之后,只需像往常一样检索帖子信息,然后通过将其输出到浏览器向用户显示。