public function query($query)
 {
     if (PVars::get()->debug) {
         $start_time = microtime(true);
     }
     $q = @mysql_query($query, $this->_dao->cr);
     if (!$q) {
         $e = new PException('MySQL error!', 1000);
         $e->addInfo('Statement: ' . $query);
         $e->addInfo($this->_dao->getErrNo());
         $e->addInfo($this->_dao->getErrMsg());
         throw $e;
     }
     $this->result = $q;
     $this->pos = 0;
     $q = PVars::get()->queries + 1;
     PVars::register('queries', $q);
     if (PVars::get()->debug) {
         $q = PVars::get()->query_history;
         $query_time = sprintf("%.1f", (microtime(true) - $start_time) * 1000);
         $q[] = "({$query_time} ms) {$query}";
         PVars::register('query_history', $q);
     }
     return true;
 }