我正在使用一个简单的类来记录我的sql查询,并返回查询的总量和执行所花费的时间。
class QueryLogger {
public $queries = array();
public function query($sql) {
global $db;
$start = microtime(true);
$query = $db->query($sql);
$queries[] = microtime(true) - $start;
return $query;
}
public function getCount() {
return sizeof($this->queries);
}
public function getTime() {
return array_sum($this->queries);
}
} // end QueryLogger class
$queryLogger = new QueryLogger;
使用这个类,我可以成功地查询数据库:
$results = $queryLogger->query("MY SQL QUERY HERE");
问题是我不能让它返回查询的总数或时间:
echo 'Ran '.$queryLogger->getCount().' queries in '.$queryLogger->getTime().' seconds.';
我总是在0秒内得到0个查询。我不知道为什么。
您刚刚忘记了对象引用($this
)。
$this->queries[] = microtime(true) - $start;