fix: DB connection is global and tries 2 tested ways to connect

Some installations seem to support localhost:port for 1st parameter of
mysqli_connect(), others will only support the official parameters with
port towards the end. This fix tries them both - first the official one,
then the localhost:port one.

Also, there were a lot of mysqli_connect()'s inside Admin mods. These
now also use the central Database class.
This commit is contained in:
Martin Ambrus
2017-11-20 01:09:49 +01:00
parent c27b397016
commit 0984c7ef34
50 changed files with 482 additions and 187 deletions
+11 -7
View File
@@ -442,15 +442,19 @@ class MYSQLi_DB implements IDbConnection {
*/
public function connect() {
// try to connect
$this->dblink = mysqli_connect($this->hostname.':'.$this->port, $this->username, $this->password);
try {
$this->dblink = mysqli_connect( $this->hostname, $this->username, $this->password, $this->dbname, $this->port );
} catch (\Exception $exception) {
$this->dblink = mysqli_connect( $this->hostname . ':' . $this->port, $this->username, $this->password );
// return on error
if (mysqli_error($this->dblink)) {
return false;
}
// return on error
if (mysqli_error($this->dblink)) {
return false;
}
// select the DB to use
mysqli_select_db($this->dblink, $this->dbname);
// select the DB to use
mysqli_select_db($this->dblink, $this->dbname);
}
// return on error
if (mysqli_error($this->dblink)) {