Я использую простой класс для регистрации моих запросов 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;