是否有机会捕获所有已执行的查询

时间:2012-03-15 14:46:42

标签: php sql

您有没有机会在网站上缓存所有已执行的查询?没有任何会执行并将其写入数组的类?

我需要编写一些脚本,它会在页面底部显示所有已执行的查询。现在我使用Kohana和它的简单因为有一个profiler类可以显示,但是简单的mysql_query是什么?

1 个答案:

答案 0 :(得分:0)

一种丑陋但简单有效的方法:

function mysql_query_log ($query, $conn = NULL) {
  if (!isset($GLOBALS['__QueryLog'])) $GLOBALS['__QueryLog'] = array();
  $GLOBALS['__QueryLog'][] = $query;
  return mysql_query($query, $conn);
}

将您对mysql_query()的所有来电更改为mysql_query_log(),全局变量$__QueryLog是迄今为止已执行的所有查询的数组。

我称之为“丑陋”方法的原因是函数修改了它自己范围之外的变量,这是不好的做法,应该避免。但为了简单起见,这是不可避免的。