为什么不是';在使用PHPFastCache时,是否使用此查询缓存?

为什么不是';在使用PHPFastCache时,是否使用此查询缓存?,php,mysql,caching,Php,Mysql,Caching,我正在尝试使用缓存页面上的查询 我在页面上没有收到任何错误,并且在它需要的cached.storage文件夹中成功创建了文件,但是当我更改查询中的数据时,它不会缓存数据。我做错了什么 include_once("php_fast_cache.php"); phpFastCache::$storage = "auto"; $getItemsQuery = phpFastCache::get("$itemId"); if($getItemsQuery == null) { $getItem

我正在尝试使用缓存页面上的查询

我在页面上没有收到任何错误,并且在它需要的cached.storage文件夹中成功创建了文件,但是当我更改查询中的数据时,它不会缓存数据。我做错了什么

include_once("php_fast_cache.php");
phpFastCache::$storage = "auto";

$getItemsQuery = phpFastCache::get("$itemId");
if($getItemsQuery == null) {
    $getItemsQuery = mysql_query("select item_id, item_name from items where item_id = $itemId");
    phpFastCache::set("$itemId", $getItemsQuery,86400);
}

啊,没错,你应该在缓存中缓存实际的“数据”,即从mysql获取的数据

试图缓存运行查询返回的“资源”不会有帮助,因为调用“get”的下一个实例将无法使用该资源(即使它已被缓存-我对此表示怀疑)

。。。您没有看到错误,因为“get”失败,所以只需运行mysql查询


在这里使用mysql扩展可以忽略这个问题。使用mysqli或PDO等会产生与这种方式完全相同的问题

请详细说明“当我在查询中更改数据时”的确切含义,请仔细阅读以避免严重的错误。另外,
mysql\u query
不应在新应用程序中使用。这是一个不推荐使用的接口,将从PHP的未来版本中删除。一个现代的替代品。像这样的指南可以帮助您避免犯这样的错误。@barryhunter我的意思是我只是在更改表记录中的数据,以测试缓存是否正常工作。@tadman感谢您的回复。我确实使用了SQL转义,但只是简化了示例中的SQL转义。因此,您说您更改了数据库中的数据,但您在页面上看到或没有看到更改。由于缓存,预计不会看到更改。除非同时清除缓存。