[英]How do you capture the SQL queries running in a CakePHP page?
我有一个生产型CakePHP网站,需要对缓慢的SQL查询进行故障排除。 我想使用实际的SQL查询,执行时间等访问CakePHP创建的出色表,但是我无法在生产站点上将DEBUG级别设置为3。
我以为这很简单,但是我似乎无法弄清楚如何获取特定脚本的信息并对其进行处理,例如将其保存到日志文件中。
该文章将帮助你。
如果您有权访问MySQL配置文件,则可以通过启用log-slow-query设置来记录慢查询。
对于Cake 1.3(不确定在1.2中是否适用),请查看/cake/libs/view/elements/sql_dump.ctp
并使其适应您的需求:
$sources = ConnectionManager::sourceList();
foreach ($sources as $source) {
$db =& ConnectionManager::getDataSource($source);
if (!$db->isInterfaceSupported('getLog')) {
continue;
}
$log = $db->getLog();
// examine $log...
}
DebugKit是您的朋友。 应该有适合Cake 1.3、2.x和3.x的版本。 它有一个漂亮的工具栏,显示您的所有SQL查询以及运行每个查询所花费的时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.