Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter 如何缓存不使用query()函数的CI活动记录_Codeigniter_Caching_Activerecord - Fatal编程技术网

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_数组不存在