实际上我在stackoverflow本身看到了一些建议,但没有得到这个问题的确切解决方案,请不要认为这是重复的。
我使用memcache为我的codeigniter网站和活动记录来构建查询。 我在用
this->db->return_query_string();
在执行之前从活动记录中获取查询。现在我想刷新活动记录而不执行相同的查询。
也来自各种参考文献
$this->db->start_cache();
$this->db->stop_cache();
$this->db->flush_cache()
可能做的就是这是确切的结果吗?如果是这样,我如何获得没有执行
的缓存查询答案 0 :(得分:5)
您可以根据自己的要求使用这两个功能
public function _compile_select($select_override = FALSE)
public function _reset_select()
要使用它们,您必须删除公共或私人关键字 转到system / database / DB_active_rec.php从这些函数中删除public或protected关键字
使用示例
$this->db->select('trans_id');
$this->db->from('myTable');
$this->db->where('code','B');
$subQuery = $this->db->_compile_select();
$this->db->_reset_select();
$ subQuery包含查询字符串,_reset_select重置活动记录,以便您可以编写新查询。
答案 1 :(得分:3)
从CodeIgniter 3.x开始,你可以这样做:
$subQuery = $this->db
->select('trans_id')
->where('code', 'B')
->get_compiled_select('myTable');