Moh*_*aji 24 php mysql activerecord codeigniter
我正在寻找一种方法来查看生成的查询字符串,但不执行它.
请注意,之前尚未执行查询.(我不想要$this->db->last_query();
)
我希望有一个方法,其名称就像$this->db->echo_query_string($table_name = '');
使用完全相同 $this->db->get($table_name = '');
但只 get()
执行代码,但echo_query_string()
只是在不执行的情况下回显查询字符串.
Ste*_*wie 28
您可以通过以下任一功能查看已编译的查询
/* SELECT */ $this->db->_compile_select();
/* INSERT */ $this->db->_insert();
/* UPDATE */ $this->db->_update();
Run Code Online (Sandbox Code Playgroud)
小智 19
您不需要更改codeigniter中的任何文件,因为它已经提供了一种方法来执行此操作.
运用
echo $this->db->last_query();
会产生
select * from some_table...
就是这样.
Muh*_*eel 11
我在DB_active_rec.php中添加了这个小方法
function return_query()
{
return $this->_compile_select();
}
Run Code Online (Sandbox Code Playgroud)
用法
$this->db->select('id,user_name')->from('user')->where('id',1);
$string = $this->db->return_query();
echo $string;
Run Code Online (Sandbox Code Playgroud)
结果
SELECT `id`, `user_name` FROM (`user`) WHERE `id` = 1
Run Code Online (Sandbox Code Playgroud)
通过这种方式你必然会使用
$this->db->from()
Run Code Online (Sandbox Code Playgroud)
代替
$this->db->get()
Run Code Online (Sandbox Code Playgroud)
哪个运行查询
您可以使用一些公共方法来获取SQL查询
$sql = $this->db->get_compiled_select();
Run Code Online (Sandbox Code Playgroud)
$sql = $this->db->get_compiled_insert();
Run Code Online (Sandbox Code Playgroud)
$sql = $this->db->get_compiled_update();
Run Code Online (Sandbox Code Playgroud)
$sql = $this->db->get_compiled_delete();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
66798 次 |
最近记录: |