我使用Simple PHP File Cache类。我使用MySQL方法将数据集(添加PHP loops结果)添加到foreach中,如下所示:

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

10-04 20:31