PHP 文件缓存不能在循环中工作

标签 php mysql caching

我与 Simple PHP File Cache 一起工作类(class)。我使用 foreach 方法将数据集(添加 MySQL 结果)添加到 PHP 循环 中,如下所示:

PHP 代码:

   $c = new Cache();
    foreach($_POST['audio'] as $audio){
    SQL::put("INSERT INTO " . NEWS_FILES . " (news_id, url, type) VALUES (?, ?, ?)", $id, $audio,"audio");
    $c->store($id, array(
    'action' => array(
    $id, $video,"audio")
    ));
    }

缓存文件中的结果:

{"202":{"time":1410452801,"expire":0,"data":{"action":[202,"http:\/\/localhost\/user\/uploads\/files\/1\/thumbs\/1\/audio\/download-kid-photo-c.jpg","audio"]}}}

现在,我有 4 个 id 202 的文件,但缓存类只在文件中插入一个文件。缓存类不适用于循环!如何解决这个问题?

类文件 HERE

最佳答案

这是由覆盖缓存中的标识符引起的。 这就像 nosql 键值存储一样。键应该是唯一标识符。 你已经:

202 => file1,
202 => file2,
202 => file3,
202 => file4

并且不可能通过标识符获取每个文件。 它应该看起来像:

201 => file1,
202 => file2,
203 => file3,
204 => file4

关于PHP 文件缓存不能在循环中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25822678/

相关文章:

php使用id删除记录

PHP/MySQL 小规模模糊搜索

c++ - 在可以一次性丢弃的区域内动态构建对象

c++ - Ubuntu 上 Netbeans 7.3+ 中 c++ 的解析器索引/缓存的位置

php - 检查用户权限

php - 这些 PHP 条件是否相同或有优势

php - Emacs 对 Web 开发有任何工作点文件感到沮丧吗?

MySQL 5.6.41 错误号 1064 : Creating a MySQL query with variables

php - 在 SQL 中查找给定日期的最高温度

scala - 使用函数式回调/代理模式实现 scala 进行缓存