diff --git a/phpBB/phpbb/db/driver/mysqli.php b/phpBB/phpbb/db/driver/mysqli.php index 6182801da6..0f4a6e8628 100644 --- a/phpBB/phpbb/db/driver/mysqli.php +++ b/phpBB/phpbb/db/driver/mysqli.php @@ -59,14 +59,17 @@ class mysqli extends \phpbb\db\driver\mysql_base } } - $this->db_connect_id = mysqli_init(); - - if (!@mysqli_real_connect($this->db_connect_id, $this->server, $this->user, $sqlpassword, $this->dbname, $port, $socket, MYSQLI_CLIENT_FOUND_ROWS)) + if (!$this->db_connect_id = mysqli_init()) { - $this->db_connect_id = ''; + $this->connect_error = 'Failed to initialize MySQLi object.'; + + } + else if (!@mysqli_real_connect($this->db_connect_id, $this->server, $this->user, $sqlpassword, $this->dbname, $port, $socket, MYSQLI_CLIENT_FOUND_ROWS)) + { + $this->connect_error = 'Failed to establish a connection to the MySQL database engine. Please ensure MySQL server is running and the database configuration parameters are correct.'; } - if ($this->db_connect_id && $this->dbname != '') + if (!$this->connect_error && $this->db_connect_id && $this->dbname != '') { // Disable loading local files on client side @mysqli_options($this->db_connect_id, MYSQLI_OPT_LOCAL_INFILE, false); @@ -357,15 +360,8 @@ class mysqli extends \phpbb\db\driver\mysql_base if ($this->db_connect_id) { $error = [ - 'message' => $this->db_connect_id->error, - 'code' => $this->db_connect_id->errno, - ]; - } - else if (function_exists('mysqli_connect_error')) - { - $error = [ - 'message' => $this->db_connect_id->connect_error, - 'code' => $this->db_connect_id->connect_errno, + 'message' => $this->db_connect_id->connect_error ?: $this->db_connect_id->error, + 'code' => $this->db_connect_id->connect_errno ?: $this->db_connect_id->errno, ]; } else