是的,我知道我可以缓存这样的查询
$CI->db->cache_on();
$query = $CI->db->query("select photo,gender from users where id=".$id);
$CI->db->cache_off();
但我需要这样的方式
$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_array()
是一个未定义的函数。
答案 0 :(得分:0)
在
$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();
在调用get
方法之前移动要调用的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_array
不存在的原因