昨夜渡轮 发表于 2011-7-28 20:08:52

缓存后如何往数据库里更新数据?

本帖最后由 昨夜渡轮 于 2011-7-28 20:09 编辑

比如一个文章系统,阅读文章的页面在每次进入时都增加一次访问量,如果不缓存没问题,但是用了CI的静态缓存后不能更新数据内容了,这有什么办法吗?
比如这个例子:

class View extends Controller {
function View()
{
parent::Controller();
$this->db->set('count', 'count+1', FALSE);
$this->db->insert('article', array('id'=>1) );
}

function read()
{
$this->output->cache(5);
相关PHP代码......
}


这只是一个说明问题的示例,我在read()里开启了缓存,当有缓存文件的时候就不执行View()里的数据库操作了,如果不缓存的话就是正常的,怎么回事,有什么解决方法?

昨夜渡轮 发表于 2011-7-28 20:37:42

传统的如果不框架,在读取缓存显示前是可以执行这种操作的可是这里有什么办法能达到那个要求

longjianghu 发表于 2011-7-28 21:00:53

ajax{:soso_e113:}

昨夜渡轮 发表于 2011-7-28 21:03:38

longjianghu 发表于 2011-7-28 21:00 static/image/common/back.gif
ajax

呵呵这样不好使,我想是不是开启缓存后CI禁止了执行数据库操作呢?

longjianghu 发表于 2011-7-28 21:06:32

昨夜渡轮 发表于 2011-7-28 21:03 static/image/common/back.gif
呵呵这样不好使,我想是不是开启缓存后CI禁止了执行数据库操作呢?

你的意思如何你缓存了我用js还无法更新数据库了么?

昨夜渡轮 发表于 2011-7-28 21:25:32

longjianghu 发表于 2011-7-28 21:06 static/image/common/back.gif
你的意思如何你缓存了我用js还无法更新数据库了么?

我的意思是在输出缓存前,先执行更新数据访问量的代码

昨夜渡轮 发表于 2011-7-28 22:54:49

明白原因了,原来有缓存的话都不加载lib库文件了,不知道有没有什么好的解决办法

longjianghu 发表于 2011-7-29 18:01:40

昨夜渡轮 发表于 2011-7-28 21:25 static/image/common/back.gif
我的意思是在输出缓存前,先执行更新数据访问量的代码

先更新或者打开之后更新有什么区别?

visvoy 发表于 2011-7-29 18:14:51

缓存在控制器加载前就输出结束了,没有contorller,没有load,没有model,没有db,没有library
页: [1]
查看完整版本: 缓存后如何往数据库里更新数据?