dbh = mysql_pconnect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME, $this->dbh); $stats = array(); } /* * TODO: errorhandling? */ function query($sql) { $start = microtime(true); $this->result = mysql_query($sql, $this->dbh); $error = mysql_error($this->dbh); $end = microtime(true); $this->stats[] = array('query' => $sql, 'error' => $error, 'time' => $end - $start); return $this->result; } function fetch_assoc() { return mysql_fetch_assoc($this->result); } function fetch_array() { return mysql_fetch_array($this->result); } function fetch_row() { return mysql_fetch_row($this->result); } function num_rows() { return mysql_num_rows($this->result); } function insert_id() { return mysql_insert_id(); } function affected_rows() { return mysql_affected_rows($this->result); } static function getQueryStats() { $sum = 0; $errors = 0; $stats = self::$instance->stats; unset($stats['last']); if (count($stats) > 0) { foreach ($stats as $key => $val) { $sum += $val['time']; if (!empty($val['error'])) $errors++; } foreach ($stats as $key => $val) $stats[$key]['percent'] = round($val['time'] / $sum, 2); } $stats['last'] = array('count' => count($stats), 'errors' => $errors, 'sum' => round($sum, 4)); return $stats; } static function resetQueryStats() { unset($instance->stats); } function close($force = false) { if ($force) { mysql_close($instance->dbh); unset($instance); } } } ?>