From ebd0e986ed11f2a34fb58cdd33efbfab192083ad Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 22 Apr 2016 05:26:17 -0400
Subject: [PATCH] Added PHP 7 check in installer and updater.
---
server/lib/classes/db_mysql.inc.php | 23 ++++++++++++++++++-----
1 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php
index f5ce39c..6d42847 100644
--- a/server/lib/classes/db_mysql.inc.php
+++ b/server/lib/classes/db_mysql.inc.php
@@ -101,8 +101,8 @@
}
*/
if(mysqli_connect_error()) {
- $this->errorNumber = mysqli_connect_errno();
- $this->errorMessage = mysqli_connect_error();
+ $this->errorNumber = $this->connect_errno;
+ $this->errorMessage = $this->connect_error;
} else {
$this->errorNumber = mysqli_errno($this);
$this->errorMessage = mysqli_error($this);
@@ -130,6 +130,8 @@
}
public function query($queryString) {
+ global $app;
+
if($this->isConnected == false) return false;
$try = 0;
do {
@@ -137,8 +139,19 @@
$ok = $this->ping();
if(!$ok) {
if(!$this->real_connect($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName)) {
+ $this->updateError('DB::query -> reconnect');
+ 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->updateError('DB::query -> reconnect');
return false;
} else {
sleep(($try > 7 ? 5 : 1));
@@ -150,7 +163,7 @@
}
} while($ok == false);
$this->queryId = parent::query($queryString);
- $this->updateError('DB::query('.$queryString.') -> mysqli_query');
+ if(!$this->queryId) $this->updateError('DB::query('.$queryString.') -> mysqli_query');
if(!$this->queryId) {
return false;
}
@@ -184,9 +197,9 @@
// returns the next record in an array
public function nextRecord() {
$this->record = $this->queryId->fetch_assoc();
- $this->updateError('DB::nextRecord()-> mysql_fetch_array');
if(!$this->record || !is_array($this->record))
{
+ $this->updateError('DB::nextRecord()-> mysql_fetch_array');
return false;
}
$this->currentRow++;
--
Gitblit v1.9.1