aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/db/mysqli.php
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2012-01-02 18:53:55 +0100
committerAndreas Fischer <bantu@phpbb.com>2012-01-02 18:53:55 +0100
commit2345be38b682a58f9b5e5429c76db97a0564093d (patch)
treefe39c5f348f86c23f3c9af9011d6d0c1b0c0baf5 /phpBB/includes/db/mysqli.php
parentc8da5ad9f42d8ced1aead79a42cc5caee5c5a2ff (diff)
parente14c3f3b77ab07ce97f357a15db5db5101df06c1 (diff)
downloadforums-2345be38b682a58f9b5e5429c76db97a0564093d.tar
forums-2345be38b682a58f9b5e5429c76db97a0564093d.tar.gz
forums-2345be38b682a58f9b5e5429c76db97a0564093d.tar.bz2
forums-2345be38b682a58f9b5e5429c76db97a0564093d.tar.xz
forums-2345be38b682a58f9b5e5429c76db97a0564093d.zip
Merge branch 'prep-release-3.0.10'
* prep-release-3.0.10: (221 commits) [prep-release-3.0.10] Bumping version number for 3.0.10 final. [prep-release-3.0.10] Update Changelog for 3.0.10-RC3 release. [ticket/10531] Disallow deleting of the last style [ticket/8996] Revert initial fix to keep old behaviour on empty selection Part2 [ticket/8996] Revert initial fix to keep old behaviour on empty selection [ticket/10319] Missing hidden fields in search form [ticket/10504] Revert the changes for widescreen optimisation PHPBB3-6632 [ticket/10504] Revert the changes for widescreen optimisation PHPBB3-10408 [ticket/10504] Revert the changes for widescreen optimisation PHPBB3-10485 [prep-release-3.0.10] Bumping version number for 3.0.10-RC3. [ticket/10480] Add a build target for changelog building. [ticket/10480] Add a build script for exporting the changelog from tracker. [ticket/10502] Fix typo in changelog. 'red' should have been 'read'. [prep-release-3.0.10] Remove duplicate ticket PHPBB3-10490 from changelog. [ticket/10501] Fix description of table prefixes [ticket/10503] Debug error "Invalid arguments" when previewing edits [prep-release-3.0.10] Update Changelog for 3.0.10-RC2 release. [ticket/10497] Fix SQL error when guest visits forum with unread topic [prep-release-3.0.10] Bumping version number for 3.0.10-RC2. [ticket/10461] Add a comment explaining the logic here. ...
Diffstat (limited to 'phpBB/includes/db/mysqli.php')
-rw-r--r--phpBB/includes/db/mysqli.php35
1 files changed, 30 insertions, 5 deletions
diff --git a/phpBB/includes/db/mysqli.php b/phpBB/includes/db/mysqli.php
index 862d62f4ba..456ce906d0 100644
--- a/phpBB/includes/db/mysqli.php
+++ b/phpBB/includes/db/mysqli.php
@@ -33,14 +33,33 @@ class dbal_mysqli extends dbal
*/
function sql_connect($sqlserver, $sqluser, $sqlpassword, $database, $port = false, $persistency = false , $new_link = false)
{
- $this->persistency = $persistency;
+ // Mysqli extension supports persistent connection since PHP 5.3.0
+ $this->persistency = (version_compare(PHP_VERSION, '5.3.0', '>=')) ? $persistency : false;
$this->user = $sqluser;
- $this->server = $sqlserver;
+
+ // If persistent connection, set dbhost to localhost when empty and prepend it with 'p:' prefix
+ $this->server = ($this->persistency) ? 'p:' . (($sqlserver) ? $sqlserver : 'localhost') : $sqlserver;
+
$this->dbname = $database;
$port = (!$port) ? NULL : $port;
- // Persistant connections not supported by the mysqli extension?
- $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 (is_numeric($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 != '')
{
@@ -230,7 +249,13 @@ class dbal_mysqli extends dbal
return $cache->sql_fetchrow($query_id);
}
- return ($query_id !== false) ? @mysqli_fetch_assoc($query_id) : false;
+ if ($query_id !== false)
+ {
+ $result = @mysqli_fetch_assoc($query_id);
+ return $result !== null ? $result : false;
+ }
+
+ return false;
}
/**