Merge pull request #6763 from rxu/ticket/17455

[ticket/17455] Fix PHP warning on MySQLi connection failure
This commit is contained in:
Marc Alexander 2025-01-06 10:57:16 +01:00 committed by GitHub
commit 2f08d8eb72
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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