查询执行发生在所有 get 方法上,例如
$this->db->get('table_name');
$this->db->get_where('table_name',$array);
而 last_query 包含运行的最后一个查询
$this->db->last_query();
如果您想在不执行的情况下获取查询字符串,则必须这样做。转到 system/database/DB_active_rec.php 从这些函数中删除 public 或 protected 关键字
public function _compile_select($select_override = FALSE)
public function _reset_select()
现在您可以编写查询并将其放入变量中
$this->db->select('trans_id');
$this->db->from('myTable');
$this->db->where('code','B');
$subQuery = $this->db->_compile_select();
现在重置查询,因此如果您想编写另一个查询,该对象将被清除。
$this->db->_reset_select();
事情就完成了。干杯!!!注意:使用这种方式时,您必须使用
$this->db->from('myTable')
代替
$this->db->get('myTable')
运行查询。
看看这个例子