From 06339e0c8ac8fdbbf5d2784df8019704da9bd6eb Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Tue, 13 Jan 2015 12:28:33 -0500
Subject: [PATCH] - fixed javascript call in json file
---
server/lib/classes/db_mysql.inc.php | 67 +++++++++++++++++++++++++++------
1 files changed, 54 insertions(+), 13 deletions(-)
diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php
index 488a381..8075d1f 100644
--- a/server/lib/classes/db_mysql.inc.php
+++ b/server/lib/classes/db_mysql.inc.php
@@ -86,7 +86,7 @@
$this->_sqlerror('Zugriff auf Datenbankserver fehlgeschlagen! / Database server not accessible!');
return false;
}
- if(!((bool)mysqli_query( $this->_iConnId, "USE $this->dbName"))) {
+ if(!((bool)mysqli_query( $this->_iConnId, 'USE `' . $this->dbName . '`'))) {
$this->close();
$this->_sqlerror('Datenbank nicht gefunden / Database not found');
return false;
@@ -176,6 +176,7 @@
private function _query($sQuery = '') {
global $app;
+ //if($this->isConnected == false) return false;
if ($sQuery == '') {
$this->_sqlerror('Keine Anfrage angegeben / No query given');
return false;
@@ -187,6 +188,17 @@
$ok = mysqli_ping($this->_iConnId);
if(!$ok) {
if(!mysqli_connect($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName)) {
+ 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
+ }
+ sleep(30); // additional seconds, please!
+ }
+
if($try > 9) {
$this->_sqlerror('DB::query -> reconnect');
return false;
@@ -269,11 +281,11 @@
}
public function queryOne($sQuery = '') {
- return $this->query_one($sQuery);
+ return call_user_func_array(array(&$this, 'queryOneRecord'), func_get_args());
}
public function query_one($sQuery = '') {
- return $this->queryOneRecord($sQuery);
+ return call_user_func_array(array(&$this, 'queryOneRecord'), func_get_args());
}
/**
@@ -302,11 +314,11 @@
}
public function queryAll($sQuery = '') {
- return $this->queryAllRecords($sQuery);
+ return call_user_func_array(array(&$this, 'queryAllRecords'), func_get_args());
}
public function query_all($sQuery = '') {
- return $this->queryAllRecords($sQuery);
+ return call_user_func_array(array(&$this, 'queryAllRecords'), func_get_args());
}
/**
@@ -335,7 +347,7 @@
}
public function query_all_array($sQuery = '') {
- return $this->queryAllArray($sQuery);
+ return call_user_func_array(array(&$this, 'queryAllArray'), func_get_args());
}
@@ -378,6 +390,35 @@
/**
+ * check if a utf8 string is valid
+ *
+ * @access public
+ * @param string $string the string to check
+ * @return bool true if it is valid utf8, false otherwise
+ */
+ private function check_utf8($str) {
+ $len = strlen($str);
+ for($i = 0; $i < $len; $i++){
+ $c = ord($str[$i]);
+ if ($c > 128) {
+ if (($c > 247)) return false;
+ elseif ($c > 239) $bytes = 4;
+ elseif ($c > 223) $bytes = 3;
+ elseif ($c > 191) $bytes = 2;
+ else return false;
+ if (($i + $bytes) > $len) return false;
+ while ($bytes > 1) {
+ $i++;
+ $b = ord($str[$i]);
+ if ($b < 128 || $b > 191) return false;
+ $bytes--;
+ }
+ }
+ }
+ return true;
+ } // end of check_utf8
+
+ /**
* Escape a string for usage in a query
*
* @access public
@@ -388,21 +429,21 @@
global $app;
if(!is_string($sString) && !is_numeric($sString)) {
$app->log('NON-String given in escape function! (' . gettype($sString) . ')', LOGLEVEL_INFO);
- $sAddMsg = getDebugBacktrace();
+ //$sAddMsg = getDebugBacktrace();
$app->log($sAddMsg, LOGLEVEL_DEBUG);
$sString = '';
}
- /*$cur_encoding = mb_detect_encoding($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_WARN);
+ $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');
}
- } elseif(!PXBase::check_utf8($sString)) {
+ } elseif(!$this->check_utf8($sString)) {
$sString = utf8_encode($sString);
- }*/
+ }
if($this->_iConnId) return mysqli_real_escape_string($this->_iConnId, $sString);
else return addslashes($sString);
@@ -419,12 +460,12 @@
$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());
- $sAddMsg .= getDebugBacktrace();
+ //$sAddMsg .= getDebugBacktrace();
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, LOGLEVEL_WARN);
+ $app->log($sErrormsg . $sAddMsg . ' -> ' . $mysql_errno . ' (' . $mysql_error . ')', LOGLEVEL_WARN);
}
}
--
Gitblit v1.9.1