From 40a65abc3ae312876842cc3e19220e74fa002667 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Thu, 26 Jun 2014 14:25:40 +0200 Subject: [PATCH] [ticket/12764] Properly handle errors upon connecting to MySQLi database As the db_connect_id gets set up by mysql_init(), the db_connect_id will be an object with empty settings instead of just empty. Even if mysql_real_connect() encounters an error upon connecting, the db_connect_id is still set. This will result in trying to just access the database which obviously does nothing. By setting db_connect_id to an empty string, the script will not try to query th database and properly handle any errors that occur upon connecting. PHPBB3-12764 --- phpBB/phpbb/db/driver/mysqli.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/phpBB/phpbb/db/driver/mysqli.php b/phpBB/phpbb/db/driver/mysqli.php index 8fc306b2cc..2ed08211ad 100644 --- a/phpBB/phpbb/db/driver/mysqli.php +++ b/phpBB/phpbb/db/driver/mysqli.php @@ -61,7 +61,11 @@ class mysqli extends \phpbb\db\driver\mysql_base } $this->db_connect_id = mysqli_init(); - @mysqli_real_connect($this->db_connect_id, $this->server, $this->user, $sqlpassword, $this->dbname, $port, $socket, MYSQLI_CLIENT_FOUND_ROWS); + + if (!@mysqli_real_connect($this->db_connect_id, $this->server, $this->user, $sqlpassword, $this->dbname, $port, $socket, MYSQLI_CLIENT_FOUND_ROWS)) + { + $this->db_connect_id = ''; + } if ($this->db_connect_id && $this->dbname != '') {