Example #1
0
 /**
  * Perform a mysql query.
  *
  * @see mysqli::query()
  *
  * @param string $query
  * @param mixed $resultmode null|string
  * @return mixed bool|object
  */
 public function query($query, $resultmode = null)
 {
     $t = microtime(true);
     $error = false;
     if (!($result = parent::query($query, $resultmode))) {
         $error = ['errno' => $this->errno, 'error' => $this->error];
     }
     $t = microtime(true) - $t;
     $this->queryCache[] = ['query' => $query, 'time' => $t, 'rows' => $this->affected_rows, 'error' => $error];
     if (!$result) {
         $e = new Exception('MySQL query error: (' . $this->errno . ') ' . $this->error, $this->errno);
         $e->set('error', $this->error);
         $e->set('query', $query);
         $e->set('time', $t);
         $e->set('rows', $this->affected_rows);
         throw $e;
     }
     $mysqliresult = is_bool($result) ? $result : new Mysqliresult($result);
     return $mysqliresult;
 }