Codeigniter:$ this-> db-> last_query();执行查询?

cvelit 发布于 2019-03-09 activerecord 最后更新 2019-03-09 14:36 0 浏览

查询执行是否发生在以下codeigniter活动记录语句的get_where()子句中?

$this->db->select('*');
    $q = $this->db->get_where('Contacts', array('id' => $contact_id));
$sql = $this->db->last_query();
或者一旦你打电话给result_array()$this->db->last_query();是获取查询字符串的可靠方法。
已邀请:

aut_ea

赞同来自:

查询执行发生在所有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')
它运行查询。 Take a look at this example