Florian Schaal
2016-03-22 5ca959fa688255a8de61f89fe2751eb4d24a6912
install/lib/mysql.lib.php
@@ -104,6 +104,7 @@
   
   public function setDBName($name) {
      $this->dbName = $name;
      $this->_iConnId = mysqli_connect($this->dbHost, $this->dbUser, $this->dbPass);
      if(!((bool)mysqli_query( $this->_iConnId, 'USE `' . $this->dbName . '`'))) {
         $this->close();
         $this->_sqlerror('Datenbank nicht gefunden / Database not found');
@@ -144,8 +145,10 @@
            if($iPos2 !== false && ($iPos === false || $iPos2 <= $iPos)) {
               $sTxt = $this->escape($sValue);
               if(strpos($sTxt, '.') !== false) $sTxt = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $sTxt);
               else $sTxt = '`' . $sTxt . '`';
               if(strpos($sTxt, '.') !== false) {
                  $sTxt = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $sTxt);
                  $sTxt = str_replace('.`*`', '.*', $sTxt);
               } else $sTxt = '`' . $sTxt . '`';
               $sQuery = substr_replace($sQuery, $sTxt, $iPos2, 2);
               $iPos2 += strlen($sTxt);
@@ -186,8 +189,6 @@
   }
   private function _query($sQuery = '') {
      global $app;
      $this->do_connect();
      if ($sQuery == '') {
@@ -204,10 +205,8 @@
               if($this->errorNumber == '111') {
                  // server is not available
                  if($try > 9) {
                     if(isset($app) && isset($app->forceErrorExit)) {
                        $app->forceErrorExit('Database connection failure!');
                     }
                     // if we reach this, the app object is missing or has no exit method, so we continue as normal
                     $this->_sqlerror('DB::query -> error connecting');
                     exit;
                  }
                  sleep(30); // additional seconds, please!
               }
@@ -439,18 +438,13 @@
    * @return string escaped string
    */
   public function escape($sString) {
      global $app;
      if(!is_string($sString) && !is_numeric($sString)) {
         $app->log('NON-String given in escape function! (' . gettype($sString) . ')', LOGLEVEL_INFO);
         //$sAddMsg = getDebugBacktrace();
         $app->log($sAddMsg, LOGLEVEL_DEBUG);
         $sString = '';
      }
      $cur_encoding = mb_detect_encoding($sString);
      if($cur_encoding != "UTF-8") {
         if($cur_encoding != 'ASCII') {
            $app->log('String ' . substr($sString, 0, 25) . '... is ' . $cur_encoding . '.', LOGLEVEL_INFO);
            if($cur_encoding) $sString = mb_convert_encoding($sString, 'UTF-8', $cur_encoding);
            else $sString = mb_convert_encoding($sString, 'UTF-8');
         }
@@ -468,7 +462,7 @@
    * @access private
    */
   private function _sqlerror($sErrormsg = 'Unbekannter Fehler', $sAddMsg = '') {
      global $app, $conf;
      global $conf;
      $mysql_error = (is_object($this->_iConnId) ? mysqli_error($this->_iConnId) : mysqli_connect_error());
      $mysql_errno = (is_object($this->_iConnId) ? mysqli_errno($this->_iConnId) : mysqli_connect_errno());
@@ -477,9 +471,7 @@
      if($this->show_error_messages && $conf['demo_mode'] === false) {
         echo $sErrormsg . $sAddMsg;
      } else if(is_object($app) && method_exists($app, 'log')) {
            $app->log($sErrormsg . $sAddMsg . ' -> ' . $mysql_errno . ' (' . $mysql_error . ')', LOGLEVEL_WARN);
         }
      }
   }
   public function affectedRows() {
@@ -784,7 +776,7 @@
    *
    * @access private
    */
   public function db_result($iResId, $iConnection) {
   public function __construct($iResId, $iConnection) {
      $this->_iResId = $iResId;
      $this->_iConnection = $iConnection;
   }
@@ -910,7 +902,7 @@
    *
    * @access private
    */
   public function fakedb_result($aData) {
   public function __construct($aData) {
      $this->aResultData = $aData;
      $this->aLimitedData = $aData;
      reset($this->aLimitedData);