Answers:
要显示查询字符串:
print_r($this->db->last_query());
要显示查询结果:
print_r($query);
Profiler类将在页面底部显示基准测试结果,已运行的查询以及$ _POST数据。要启用探查器,请将以下行放在Controller方法中的任何位置:
$this->output->enable_profiler(TRUE);
分析用户指南:https : //www.codeigniter.com/user_guide/general/profiling.html
您可以显示ActiveRecord生成的SQL:
在查询运行之前:
$this->db->_compile_select();
并运行后:
$this->db->last_query();
$this->db->get_compiled_select()
改用。
您可以在末尾简单地使用它。
echo $this->db->last_query();
我正在使用xdebug观看带有相应扩展名和CI v2.x的VSCode中的该值。我$this->db->last_query()
在watch部分中添加了expresion ,并xdebugSettings
在launch.json中添加了像这样的行来获取非截断值。
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000,
"xdebugSettings": {
"max_data": -1,
"max_children": -1
}
},
并使用断点运行调试器,最后只需选择我的表达式,然后单击右键>复制值即可。
我遇到了完全相同的问题,并最终找到了解决方案。我的查询运行如下:
$result = mysqli_query($link,'SELECT * FROM clients WHERE ' . $sql_where . ' AND ' . $sql_where2 . ' ORDER BY acconame ASC ');
为了显示sql命令,我要做的就是创建一个变量($ resultstring),其内容与查询的内容完全相同,然后回显它,如下所示:<?php echo $resultstring = 'SELECT * FROM clients WHERE ' . $sql_where . ' AND ' . $sql_where2 . ' ORDER BY acconame ASC '; ?>
有用!