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

前端之家收集整理的这篇文章主要介绍了php – fetch当我从缓存中获取它时只返回一行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

简单的逻辑是这样的:

尝试从缓存中获取数据:

>如果没有:运行查询并将其设置为缓存.
>如果有:显示来自缓存的数据.

我的代码

  1. PHP
  2. // Require Library
  3. require_once("PHPfastcache.PHP");
  4. $cache = PHPFastCache();
  5. //lets get it from cache.
  6. $r = $cache->get("cachethis");
  7. if($r == null) {
  8. echo " THIS TIME RUN WITHOUT CACHE

我的输出和问题

我有两排.

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

  1. row1
  2. row2

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

  1. row2

我试过的

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

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

最佳答案
如果一次为所有记录,请使用fetchAll

  1. $r = $cache->get("cachethis");
  2. if(!is_array($r)) {
  3. // not in cache,from db
  4. $query = $handler->query("SELECT * FROM members");
  5. $r = $query->fetchAll(PDO::FETCH_ASSOC);
  6. $cache->set("cachethis",10);
  7. }
  8. foreach($r as $v) echo $v['id']."

猜你在找的MySQL相关文章