查询执行是否发生在以下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();
是获取查询字符串的可靠方法吗?
查询执行是否发生在以下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();
是获取查询字符串的可靠方法吗?
3条答案
按热度按时间1aaf6o9v1#
查询执行发生在所有get方法上,如
而last_query包含上次运行的查询
如果您想在不执行的情况下获取查询字符串,您必须这样做。转到system/database/DB_active_rec.php从这些函数中删除public或protected关键字
现在您可以编写查询并将其存储在变量中
现在重置查询,以便在您要编写另一个查询时清除该对象。
事情就这样完成了。干杯!!!注:使用此方法时,必须使用
代替
它运行查询。
看一下这个例子
2eafrhcq2#
对我来说
save_queries
选项是关闭的,参考:Can't get result from $this->db->last_query(); codeigniter
wvmv3b1j3#
对我来说,它非常有效:Source披露:这个源网站属于我,我也在我的网站上分享解决方案...