PHP Memcache缓存数据问题

下面加memache前正常,加后运行也显示,问题是10秒内怎么刷新都有“这是第一次访问从数据库取数据放入内存中!”这句话,目的是只有第一次才有,10秒内再刷新就没有,而且... 下面加memache前正常,加后运行也显示,问题是10秒内怎么刷新都有“这是第一次访问从数据库取数据放入内存中!”这句话,目的是只有第一次才有,10秒内再刷新就没有,而且保证网页其它DIV LI 里内容要一直存在。程序中显然$mem->get($key)一直为0。 怎么改呢?就剩这点分了,帮下忙啊
$mem = new Memcache;
$mem -> connect('localhost', 11211);
$key="myrow";
$row = $mem->get($key);
if(empty($row)) {
include_once("connect.php");
$stmt = $pdo -> prepare("select * from pic8 where toid=? order by ptime ");
$stmt -> setFetchMode(PDO::FETCH_ASSOC);
$stmt -> execute(array(5));
while($row=$stmt -> fetch()){
$pic_id = $row['id'];
$pic_url = $row['pic_url'];
$pic_dm = $row['pic_dm'];
$pic_href = $row['pic_href'];
echo" <li> "
. " <div class=\"title\"><a href=\" $pic_href\"> $pic_dm </a></div>"
. " <div class=\"img\"><a href=\" $pic_href\"><img src=\"/shop/$pic_url\" alt=\" $pic_dm \" /></a></div>"
. " </li> "
.""; }
$mem -> add($key,$row,MEMCACHE_COMPRESSED,10);
echo"这是第一次访问从数据库取数据放入内存中!<br>";
}

'.
。还没有人回答吗,关键是我想知道怎么把想要的内容(while里很多个<li>里的内容)写入缓存里???
展开
 我来答
好大只兔兔
2015-06-12
知道答主
回答量:3
采纳率:0%
帮助的人:3644
展开全部
$mem = new Memcache;
$mem -> connect('localhost', 11211);
$key="mysum";
$sum = $mem->get($key);
if(empty($sum)) {
include_once("connect.php");
$stmt = $pdo -> prepare("select * from pic8 where toid=? order by ptime ");
$stmt -> setFetchMode(PDO::FETCH_ASSOC);
$stmt -> execute(array(5));
while($row=$stmt -> fetch()){
$a= " <li> "
. " <div class=\"title\"><a href=\" $pic_href\"> $pic_dm </a></div>"
. " <div class=\"img\"><a href=\" $pic_href\"><img src=\"/shop/$pic_url\" alt=\" $pic_dm \" /></a></div>"
. " </li> "
."";
$sum=$sum.$a;}
$mem -> add($key,$sum,MEMCACHE_COMPRESSED,10);
echo"这是第一次访问从数据库取数据放入内存中!<br>"; }
echo $sum;
匿名用户
2015-06-14
展开全部
    $mem = new Memcache; 
    $mem -> connect('localhost', 11211);    
    $key="mysum";        
    $sum = $mem->get($key);    
    if(empty($sum)) {      
     include_once("connect.php");         
     $stmt = $pdo -> prepare("select * from pic8 where toid=? order by ptime ");      
     $stmt -> setFetchMode(PDO::FETCH_ASSOC);
     $stmt -> execute(array(5)); 
     while($row=$stmt -> fetch()){
      $a=" <li>   
       <div class=\"title\"><a href=\"  $pic_href\"> 
       $pic_dm </a></div>". "          
       <div class=\"img\"><a href=\" 
       $pic_href\"><img src=\"/shop/$pic_url\" alt=\"  $pic_dm \" /></a></div>". " </li> "."";          $sum=$sum.$a;}
     $mem -> add($key,$sum,MEMCACHE_COMPRESSED,10); 
     echo"这是第一次访问从数据库取数据放入内存中!<br>";}
        echo $sum;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiii130
2015-06-09 · 知道合伙人软件行家
xiii130
知道合伙人软件行家
采纳数:817 获赞数:2867
爱好编程,在工作中积累了比较丰富的经验。愿与大家共同进步。

向TA提问 私信TA
展开全部

一个问题一个问题的回答吧哎

//连接服务器
$m = new Memcache;
$m->connect('localhost', 11211);

//检查key是否存在,存在的话就不提示第一个登录
if(false === $m->get("key")){
    //输出第一次登陆的html,不需要存入内存
}
//设置一个10秒过期的flag
$m->set("key", "loged", false, 10);


然后是怎么把那段html放进内存

$html = '';
while($row=$stmt->fetch()){
    //那一坨字符串都付给这个变量
    $html.= '<li></li>';
}
$m->set("key", $html, false, 10);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式