public function &query($a_query)
 {
     $tr = parent::getParent()->getTransaction();
     $this->free();
     $this->m_query_string = $a_query;
     if ($tr) {
         $this->begin();
     }
     $result = $this->_query($a_query);
     if ($result === false) {
         $this->m_error = new ZDatabaseQueryError(mysql_errno($this->getConnection()), mysql_error($this->getConnection()), $a_query);
         if ($tr) {
             $this->rollback();
         }
         return $this;
     }
     if ($tr) {
         $this->commit();
     }
     $this->m_error_no = null;
     $this->m_error_msg = null;
     $this->m_result =& $result;
     return $this;
 }
 public function &query($a_query)
 {
     $tr = parent::getParent()->getTransaction();
     $this->free();
     $this->m_query_string = $a_query;
     $this->getParent()->setQuery($a_query);
     if ($tr) {
         $this->begin();
     }
     $c = $this->getConnection();
     $result = $c->query($a_query, MYSQLI_USE_RESULT);
     if ($result === false) {
         $this->m_error = new ZDatabaseQueryError($c->errno, $c->error, $a_query);
         if ($tr) {
             $this->rollback();
         }
         return $this;
     }
     if ($tr) {
         $this->commit();
     }
     $this->m_result = $result;
     return $this;
 }