当前位置:  开发笔记 > 编程语言 > 正文

当我从缓存中获取它时,fetch只返回一行

如何解决《当我从缓存中获取它时,fetch只返回一行》经验,为你挑选了0个好方法。

我正在尝试采用缓存类在我的网页上使用.

简单的逻辑是这样的:

尝试从缓存中获取数据:

如果没有:运行查询并将其设置为缓存.

如果有:显示来自缓存的数据.

我的代码

get("cachethis");

if($r == null) {

    echo " THIS TIME RUN WITHOUT CACHE 
"; $time_start = microtime(true); $query = $handler->query("SELECT * FROM members"); while($r = $query->fetch(PDO::FETCH_ASSOC)) { //echo echo "$r[id]"; //lets cache query above. $cache->set("cachethis", $r, 10); } $time_end = microtime(true); $time = ($time_end - $time_start); echo "

done in " . $time . " seconds

"; } //if ($r != null) else { echo "RUN WITH CACHE. YES.
"; $time_start = microtime(true); //echo from cache.. echo "$r[id]"; $time_end = microtime(true); $time = ($time_end - $time_start); echo "

cache done in " . $time . " seconds

"; } ?>

我的输出和问题

我有两排.

当我从查询中获取它们时,我的代码输出它们.这很好.

row1
row2

但是当页面从缓存中将它带给我时,它只输出最后一行.

row2

我试过的

我尝试使用fetchAll()函数而不是fetch()但这次我收到通知:未定义的索引:id错误.

所以我被困住了,需要你的帮助.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有