【问题标题】:delete CodeIgniter Query Cache删除 CodeIgniter 查询缓存
【发布时间】:2011-11-15 13:41:16
【问题描述】:

当我在 CodeIgniter 中通过$this->db->cache_on(); 进行查询缓存时,它将创建文件夹和文件,文件夹以controller+method 命名,例如show+73。 但是当我从表中删除具有 73 个 id 的行并使用 $this->db->cache_delete('show', $id); 删除缓存时,它也不起作用。它存在并在我调用 show/73 时返回响应 我该如何解决?

我的代码:

返回结果(在模型中)

public function temp($id)
{
    $this->db->cache_on();
    $this->db->where('id',$id);
    $query = $this->db->get('system_store_table');
    return $query->result();
}

从表中删除行和缓存。 (它会成功从表中删除行,但不能删除它的缓存)

public function delete($id = 0)
{
    $this->db->flush_cache();
    $this->db->where('id',$id);
    $this->db->delete('system_store_table');
    $this->db->cache_delete('show', $id);
    if ($this->db->affected_rows() != 0)
        return TRUE;
    return FALSE;
}

【问题讨论】:

    标签: php mysql codeigniter query-cache


    【解决方案1】:

    很明显,但值得排除——您检查过文件权限吗?此外,它基于控制器/方法进行缓存,因此我假设您正在进行一些重新路由,因为这不是有效的 php 代码:

    class Show extends CI_Controller {
        public function 73() {
        }
    }
    

    您是否尝试过原始和重新路由的第一个和第二个 URI 段?

    这就是我所拥有的,除了手动检查 file_exists(FCPATH.'/path/to/cache/show/73') 和 unlink()'ing...

    【讨论】:

      【解决方案2】:

      删除现金文件

      $this->db->cache_delete('show', '73');
      

      对于数据库中的每次编辑或删除

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-29
        • 1970-01-01
        • 1970-01-01
        • 2013-10-08
        • 1970-01-01
        • 2016-12-01
        • 2015-06-17
        相关资源
        最近更新 更多