Marius Burkard
2016-04-20 4569cae57f127afd093794310ccd290d2d9fdf36
install/lib/mysql.lib.php
@@ -69,7 +69,7 @@
      
      if($this->_iConnId) return true;
      $this->dbHost = $conf["mysql"]["host"];
      $this->dbName = $conf["mysql"]["database"];
      $this->dbName = false;//$conf["mysql"]["database"];
      $this->dbUser = $conf["mysql"]["admin_user"];
      $this->dbPass = $conf["mysql"]["admin_password"];
      $this->dbCharset = $conf["mysql"]["charset"];
@@ -90,13 +90,26 @@
         $this->_sqlerror('Zugriff auf Datenbankserver fehlgeschlagen! / Database server not accessible!');
         return false;
      }
      if($this->dbName) $this->setDBName($this->dbName);
      $this->_setCharset();
   }
   public function setDBData($host, $user, $password) {
      $this->dbHost = $host;
      $this->dbUser = $user;
      $this->dbPass = $password;
   }
   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');
         return false;
      }
      $this->_setCharset();
   }
   
   public function close() {
@@ -132,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);
@@ -174,8 +189,6 @@
   }
   private function _query($sQuery = '') {
      global $app;
      $this->do_connect();
      if ($sQuery == '') {
@@ -192,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!
               }
@@ -427,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');
         }
@@ -456,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());
@@ -465,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() {
@@ -772,7 +776,7 @@
    *
    * @access private
    */
   public function db_result($iResId, $iConnection) {
   public function __construct($iResId, $iConnection) {
      $this->_iResId = $iResId;
      $this->_iConnection = $iConnection;
   }
@@ -898,7 +902,7 @@
    *
    * @access private
    */
   public function fakedb_result($aData) {
   public function __construct($aData) {
      $this->aResultData = $aData;
      $this->aLimitedData = $aData;
      reset($this->aLimitedData);