From 578f9dffa607de1da2aa181b49be583f27f3bf28 Mon Sep 17 00:00:00 2001 From: rxu <rxu@mail.ru> Date: Tue, 21 Jun 2011 00:21:42 +0800 Subject: [PATCH 1/2] [ticket/10226] Allow mysqli connections via local sockets/pipes PHPBB3-10226 --- phpBB/includes/db/mysqli.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/phpBB/includes/db/mysqli.php b/phpBB/includes/db/mysqli.php index dcf8727e18..1901847c0f 100644 --- a/phpBB/includes/db/mysqli.php +++ b/phpBB/includes/db/mysqli.php @@ -43,7 +43,23 @@ class dbal_mysqli extends dbal $this->dbname = $database; $port = (!$port) ? NULL : $port; - $this->db_connect_id = @mysqli_connect($this->server, $this->user, $sqlpassword, $this->dbname, $port); + // If port is set and it is not numeric, most likely mysqli socket is set. + // Try to map it to the $socket parameter. + $socket = NULL; + if ($port) + { + if (preg_match('#^[0-9]+$#', $port)) + { + $port = (int) $port; + } + else + { + $socket = $port; + $port = NULL; + } + } + + $this->db_connect_id = @mysqli_connect($this->server, $this->user, $sqlpassword, $this->dbname, $port, $socket); if ($this->db_connect_id && $this->dbname != '') { From 18fb3d86cdac01c2dd1469982a51526fa1480b42 Mon Sep 17 00:00:00 2001 From: rxu <rxu@mail.ru> Date: Tue, 21 Jun 2011 22:03:19 +0800 Subject: [PATCH 2/2] [ticket/10226] Use is_numeric() instead of preg_replace() PHPBB3-10226 --- phpBB/includes/db/mysqli.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/includes/db/mysqli.php b/phpBB/includes/db/mysqli.php index 1901847c0f..46c2f9210b 100644 --- a/phpBB/includes/db/mysqli.php +++ b/phpBB/includes/db/mysqli.php @@ -48,7 +48,7 @@ class dbal_mysqli extends dbal $socket = NULL; if ($port) { - if (preg_match('#^[0-9]+$#', $port)) + if (is_numeric($port)) { $port = (int) $port; }