Codeigniter 如何缓存不使用query()函数的CI活动记录
是的,我知道我可以像这样缓存查询Codeigniter 如何缓存不使用query()函数的CI活动记录,codeigniter,caching,activerecord,Codeigniter,Caching,Activerecord,是的,我知道我可以像这样缓存查询 $CI->db->cache_on(); $query = $CI->db->query("select photo,gender from users where id=".$id); $CI->db->cache_off(); $CI->db->cache_on(); $query = $CI->db->select(array('photo','gender'))->from('users
$CI->db->cache_on();
$query = $CI->db->query("select photo,gender from users where id=".$id);
$CI->db->cache_off();
$CI->db->cache_on();
$query = $CI->db->select(array('photo','gender'))->from('users')->where('id',$id)->get();
$CI->db->cache_off();
$row = $query->row_array();
但我需要这样
$CI->db->cache_on();
$CI->db->select(array('photo','gender'))->from('users')->where('id',$id);
$CI->db->cache_off();
$row = $CI->db->get()->row_array();
我正在获取数据,但在cache/目录中没有创建任何内容。所以我认为它没有被缓存。
在第二种情况下,有人能帮助我们如何缓存吗
更新
当我这么做的时候
$CI->db->cache_on();
$CI->db->select(array('photo','gender'))->from('users')->where('id',$id)->get();
$CI->db->cache_off();
$row = $CI->db->row_array();
PDO驱动程序说,row_数组是一个未定义的函数 In
$CI->db->cache_on();
$CI->db->select(array('photo','gender'))->from('users')->where('id',$id);
$CI->db->cache_off();
$row = $CI->db->get()->row_array();
在调用cache_off方法之前移动要调用的get方法,如下所示
$CI->db->cache_on();
$query = $CI->db->query("select photo,gender from users where id=".$id);
$CI->db->cache_off();
$CI->db->cache_on();
$query = $CI->db->select(array('photo','gender'))->from('users')->where('id',$id)->get();
$CI->db->cache_off();
$row = $query->row_array();
然后,它就像您的手动查询一样工作:
之所以这样做,是因为在调用get方法之前查询不会运行,因此row_数组不存在