【发布时间】:2009-04-09 22:34:30
【问题描述】:
我已经使用了一些我以前使用过的内存缓存脚本,但在新页面上,我没有得到任何响应。
memcache 位于另一个页面中包含的函数中。 我所做的是将 md5 散列到 mysql 查询并将其存储为 memcached 数据的键。如果密钥不在 memcache 中,那么我会创建数据,将其放入 memcache 并返回。
我认为代码相当简单。这是重要的部分(这是一个创建输出的大页面,所以你不需要所有这些,尽管我认为“返回”很重要,因为我担心这可能是我搞砸的地方。
我用
调用函数$outList.= outData($getList);
$getList 是一个 mysql 查询
$outList 函数是
<?php
@$memcache = new Memcache;
@$memcache->connect("localhost",11211);
function outData($getList)
{
$memVal = @$memcache->get(MD5($getList));
if($memVal=='')
{
$results=mysql_query($getList)or die(mysql_error());
// then I do a bunch of stuff with the data
@$memcache->set(MD5($getList), $memVal, false, 60000);
}
return $memVal;
}
我可以显示创建 $memVal 的所有内容,但我怀疑错误在 if 行中,但在另一个页面上使用相同的代码没有问题。
这看起来有什么问题吗?
【问题讨论】:
-
如果您在调试时删除 @ 会很有帮助.....
-
这也是为什么我运行我的开发环境时会显示最严格的错误和警告。我想看看 PHP 发现的关于代码的所有内容,甚至有点不正确。警告是一个稍后会回来咬你的错误。