我可以发现从mysqlBinLog向MySQL数据库发出了某些查询。但有没有办法找到哪个PHP文件执行了这些查询?
我的问题是 - 我无法追踪应用程序中的哪个php文件正在触发特定的更新查询。
我在整个应用程序中搜索了该特定更新查询,但我没有找到任何匹配项。它以编程方式生成并执行。
由于代码占用空间太大,我几乎不可能在任何地方发表日志声明。
答案 0 :(得分:3)
您可以围绕数据库访问库(PDO)包装记录器类,并将该查询与回溯一起记录。
class LoggerPDO extends PDO
{
function query()
{
return $this->logger('query', func_get_args());
}
private function logger($method, $args)
{
// log query
debug_print_backtrace();
// push to parent
return call_user_func_array(array($this, 'parent::' . $method), $args);
}
}
您也可以添加其他需要记录的方法,例如prepare()
或execute()
。
如果你正在使用mysql_
功能,祝你好运:)
答案 1 :(得分:0)
U可以放置触发更新查询的日志并获取这些日志信息