0

我在使用 Codeigniter 数据库缓存时遇到了一个奇怪的问题。我用它来缓存一个查询结果。为此,我在功能开始时启用它并在之后立即禁用:

function checkAfter($lastCheck)
{
    $this->db->cache_on();
    $this->db->where('time >' , date('Y-m-d H:i:s', $lastCheck));
    $q = $this->db->get('actions');
    $r = $q->result();
    $this->db->cache_off();
    return (!empty($r)) ? $r : false;
}

将某些内容添加到数据库时,我需要删除特定事件的缓存。它工作正常,$this->db->cache_delete_all();但是当我尝试删除一个特定的方法缓存时,就像用户指南中解释的那样,它什么也没做。

这里可能有什么问题?

这两种方法都在同一个模型中调用。我也尝试在删除之前启用缓存,但仍然没有。

编辑

假设我的主控制器中有方法 checkEvents,它调用模型的 checkAfter 方法,然后使用缓存。CI 缓存引擎在缓存的文件夹下创建一个名为 main+checkEvents 的文件夹,其中存储了 chached 数据。所以我试图通过 $this->db->cache_delete('main', 'checkEvents'); 调用该模型的 logEvent 方法(保存新事件)来删除它。

4

0 回答 0