php - php Active Record,生成,但不执行查询

  显示原文与译文双语对照的内容

我正在工作一个库,需要将sql查询作为字符串进行处理,以完成它的工作。

我正在使用CodeIgniter和它们的数据库类的Active Record 实现。

我知道我可以像这样 echo SQL语句。 但是我只想生成这个查询,而不是执行它。


 echo $this->db->last_query();



任何帮助完成这项工作的 !

时间: 原作者:

返回的last_query() 函数返回查询字符串,它不执行该查询字符串。 尝试将函数返回给变量以便在库中使用。


$str = $this->db->last_query();



原作者:

有了一点黑点,你就可以进入系统/db_active_rec 。php,并删除 protected 关键字表单_compile_select方法。


return $this->db->_compile_select();



也使用 $this->db->from('table');

因为获取将在这里执行查询,而不是 get()


function index(){


 $this->db->select('blah blah');


 $this->db->from('table');


 $string = $this->db->_compile_select();


 return $string;


}



原作者:

取决于它的查询类型。 插入和更新有允许你执行这里操作的方法。


$this->db->set('foo', $bar);


$this->db->update_string('table');//UPDATE table SET foo ="bar"



原作者:

我不知道这是否是一个安全的实践,但db对象在查询属性中存储它的查询,以便通过


$this->db->queries



返回一个查询的array 。

...