CakePHP - 获取上次运行的查询

2021-12-19 00:00:00 logging mysql cakephp

我想获取 CakePHP 运行的最后一个查询.我无法在 core.php 中打开调试,也无法在本地运行代码.我需要一种方法来获取最后一个 sql 查询并将其记录到错误日志中而不影响实时站点.此查询失败,但正在运行.

I want to get the last query CakePHP ran. I can't turn debug on in core.php and I can't run the code locally. I need a way to get the last sql query and log it to the error log without effecting the live site. This query is failing but is being run.

这样的事情会很棒:

$this->log($this->ModelName->lastQuery);

提前致谢.

推荐答案

对于 Cake 2.0,查询日志是受保护的,所以这会起作用

For Cake 2.0, the query log is protected so this will work

function getLastQuery() {
  $dbo = $this->getDatasource();
  $logs = $dbo->getLog();
  $lastLog = end($logs['log']);
  return $lastLog['query'];
}

相关文章