diff options
Diffstat (limited to 'phpBB/includes/db')
| -rw-r--r-- | phpBB/includes/db/firebird.php | 11 | ||||
| -rw-r--r-- | phpBB/includes/db/mssql.php | 7 | ||||
| -rw-r--r-- | phpBB/includes/db/mssql_odbc.php | 7 | ||||
| -rwxr-xr-x[-rw-r--r--] | phpBB/includes/db/mssqlnative.php | 15 | ||||
| -rw-r--r-- | phpBB/includes/db/mysql.php | 7 | ||||
| -rw-r--r-- | phpBB/includes/db/mysqli.php | 8 | ||||
| -rw-r--r-- | phpBB/includes/db/oracle.php | 10 | ||||
| -rw-r--r-- | phpBB/includes/db/postgres.php | 7 | ||||
| -rw-r--r-- | phpBB/includes/db/sqlite.php | 11 | 
9 files changed, 58 insertions, 25 deletions
diff --git a/phpBB/includes/db/firebird.php b/phpBB/includes/db/firebird.php index e554b0f2fb..6f60dd5dad 100644 --- a/phpBB/includes/db/firebird.php +++ b/phpBB/includes/db/firebird.php @@ -63,10 +63,19 @@ class dbal_firebird extends dbal  	/**  	* Version information about used database  	* @param bool $raw if true, only return the fetched sql_server_version +	* @param bool $use_cache forced to false for Interbase  	* @return string sql server version  	*/ -	function sql_server_info($raw = false) +	function sql_server_info($raw = false, $use_cache = true)  	{ +		/** +		* force $use_cache false.  I didn't research why the caching code there is no caching code +		* but I assume its because the IB extension provides a direct method to access it +		* without a query. +		*/ + +		$use_cache = false; +  		if ($this->service_handle !== false && function_exists('ibase_server_info'))  		{  			return @ibase_server_info($this->service_handle, IBASE_SVC_SERVER_VERSION); diff --git a/phpBB/includes/db/mssql.php b/phpBB/includes/db/mssql.php index 7134574691..6899a73902 100644 --- a/phpBB/includes/db/mssql.php +++ b/phpBB/includes/db/mssql.php @@ -65,13 +65,14 @@ class dbal_mssql extends dbal  	/**  	* Version information about used database  	* @param bool $raw if true, only return the fetched sql_server_version +	* @param bool $use_cache If true, it is safe to retrieve the value from the cache  	* @return string sql server version  	*/ -	function sql_server_info($raw = false) +	function sql_server_info($raw = false, $use_cache = true)  	{  		global $cache; -		if (empty($cache) || ($this->sql_server_version = $cache->get('mssql_version')) === false) +		if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('mssql_version')) === false)  		{  			$result_id = @mssql_query("SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY('productlevel'), SERVERPROPERTY('edition')", $this->db_connect_id); @@ -84,7 +85,7 @@ class dbal_mssql extends dbal  			$this->sql_server_version = ($row) ? trim(implode(' ', $row)) : 0; -			if (!empty($cache)) +			if (!empty($cache) && $use_cache)  			{  				$cache->put('mssql_version', $this->sql_server_version);  			} diff --git a/phpBB/includes/db/mssql_odbc.php b/phpBB/includes/db/mssql_odbc.php index 14c4831010..75a080b1b7 100644 --- a/phpBB/includes/db/mssql_odbc.php +++ b/phpBB/includes/db/mssql_odbc.php @@ -76,13 +76,14 @@ class dbal_mssql_odbc extends dbal  	/**  	* Version information about used database  	* @param bool $raw if true, only return the fetched sql_server_version +	* @param bool $use_cache If true, it is safe to retrieve the value from the cache  	* @return string sql server version  	*/ -	function sql_server_info($raw = false) +	function sql_server_info($raw = false, $use_cache = true)  	{  		global $cache; -		if (empty($cache) || ($this->sql_server_version = $cache->get('mssqlodbc_version')) === false) +		if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('mssqlodbc_version')) === false)  		{  			$result_id = @odbc_exec($this->db_connect_id, "SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY('productlevel'), SERVERPROPERTY('edition')"); @@ -95,7 +96,7 @@ class dbal_mssql_odbc extends dbal  			$this->sql_server_version = ($row) ? trim(implode(' ', $row)) : 0; -			if (!empty($cache)) +			if (!empty($cache) && $use_cache)  			{  				$cache->put('mssqlodbc_version', $this->sql_server_version);  			} diff --git a/phpBB/includes/db/mssqlnative.php b/phpBB/includes/db/mssqlnative.php index 08ee70907c..44d5722e4f 100644..100755 --- a/phpBB/includes/db/mssqlnative.php +++ b/phpBB/includes/db/mssqlnative.php @@ -232,18 +232,19 @@ class dbal_mssqlnative extends dbal  	/**  	* Version information about used database  	* @param bool $raw if true, only return the fetched sql_server_version +	* @param bool $use_cache If true, it is safe to retrieve the value from the cache  	* @return string sql server version  	*/ -	function sql_server_info($raw = false) +	function sql_server_info($raw = false, $use_cache = true)  	{  		global $cache; -		if (empty($cache) || ($this->sql_server_version = $cache->get('mssql_version')) === false) +		if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('mssql_version')) === false)  		{  			$arr_server_info = sqlsrv_server_info($this->db_connect_id);  			$this->sql_server_version = $arr_server_info['SQLServerVersion']; -			if (!empty($cache)) +			if (!empty($cache) && $use_cache)  			{  				$cache->put('mssql_version', $this->sql_server_version);  			} @@ -502,6 +503,7 @@ class dbal_mssqlnative extends dbal  	{  		$errors = @sqlsrv_errors(SQLSRV_ERR_ERRORS);  		$error_message = ''; +		$code = 0;  		if ($errors != null)  		{ @@ -509,6 +511,7 @@ class dbal_mssqlnative extends dbal  			{  				$error_message .= "SQLSTATE: ".$error[ 'SQLSTATE']."\n";  				$error_message .= "code: ".$error[ 'code']."\n"; +				$code = $error['code'];  				$error_message .= "message: ".$error[ 'message']."\n";  			}  			$this->last_error_result = $error_message; @@ -518,7 +521,11 @@ class dbal_mssqlnative extends dbal  		{  			$error = (isset($this->last_error_result) && $this->last_error_result) ? $this->last_error_result : array();  		} -		return $error; + +		return array( +			'message'	=> $error, +			'code'		=> $code, +		);  	}  	/** diff --git a/phpBB/includes/db/mysql.php b/phpBB/includes/db/mysql.php index 0487dfa6d2..1e24c79577 100644 --- a/phpBB/includes/db/mysql.php +++ b/phpBB/includes/db/mysql.php @@ -96,13 +96,14 @@ class dbal_mysql extends dbal  	/**  	* Version information about used database  	* @param bool $raw if true, only return the fetched sql_server_version +	* @param bool $use_cache If true, it is safe to retrieve the value from the cache  	* @return string sql server version  	*/ -	function sql_server_info($raw = false) +	function sql_server_info($raw = false, $use_cache = true)  	{  		global $cache; -		if (empty($cache) || ($this->sql_server_version = $cache->get('mysql_version')) === false) +		if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('mysql_version')) === false)  		{  			$result = @mysql_query('SELECT VERSION() AS version', $this->db_connect_id);  			$row = @mysql_fetch_assoc($result); @@ -110,7 +111,7 @@ class dbal_mysql extends dbal  			$this->sql_server_version = $row['version']; -			if (!empty($cache)) +			if (!empty($cache) && $use_cache)  			{  				$cache->put('mysql_version', $this->sql_server_version);  			} diff --git a/phpBB/includes/db/mysqli.php b/phpBB/includes/db/mysqli.php index f0e58fd148..862d62f4ba 100644 --- a/phpBB/includes/db/mysqli.php +++ b/phpBB/includes/db/mysqli.php @@ -80,14 +80,14 @@ class dbal_mysqli extends dbal  	/**  	* Version information about used database -	* @param bool $raw if true, only return the fetched sql_server_version +	* @param bool $use_cache If true, it is safe to retrieve the value from the cache  	* @return string sql server version  	*/ -	function sql_server_info($raw = false) +	function sql_server_info($raw = false, $use_cache = true)  	{  		global $cache; -		if (empty($cache) || ($this->sql_server_version = $cache->get('mysqli_version')) === false) +		if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('mysqli_version')) === false)  		{  			$result = @mysqli_query($this->db_connect_id, 'SELECT VERSION() AS version');  			$row = @mysqli_fetch_assoc($result); @@ -95,7 +95,7 @@ class dbal_mysqli extends dbal  			$this->sql_server_version = $row['version']; -			if (!empty($cache)) +			if (!empty($cache) && $use_cache)  			{  				$cache->put('mysqli_version', $this->sql_server_version);  			} diff --git a/phpBB/includes/db/oracle.php b/phpBB/includes/db/oracle.php index 5a9b18abf0..c8a9a5f604 100644 --- a/phpBB/includes/db/oracle.php +++ b/phpBB/includes/db/oracle.php @@ -56,10 +56,18 @@ class dbal_oracle extends dbal  	/**  	* Version information about used database  	* @param bool $raw if true, only return the fetched sql_server_version +	* @param bool $use_cache forced to false for Oracle  	* @return string sql server version  	*/ -	function sql_server_info($raw = false) +	function sql_server_info($raw = false, $use_cache = true)  	{ +		/** +		* force $use_cache false.  I didn't research why the caching code below is commented out +		* but I assume its because the Oracle extension provides a direct method to access it +		* without a query. +		*/ + +		$use_cache = false;  /*  		global $cache; diff --git a/phpBB/includes/db/postgres.php b/phpBB/includes/db/postgres.php index 2a885f1d04..4360c790a1 100644 --- a/phpBB/includes/db/postgres.php +++ b/phpBB/includes/db/postgres.php @@ -108,13 +108,14 @@ class dbal_postgres extends dbal  	/**  	* Version information about used database  	* @param bool $raw if true, only return the fetched sql_server_version +	* @param bool $use_cache If true, it is safe to retrieve the value from the cache  	* @return string sql server version  	*/ -	function sql_server_info($raw = false) +	function sql_server_info($raw = false, $use_cache = true)  	{  		global $cache; -		if (empty($cache) || ($this->sql_server_version = $cache->get('pgsql_version')) === false) +		if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('pgsql_version')) === false)  		{  			$query_id = @pg_query($this->db_connect_id, 'SELECT VERSION() AS version');  			$row = @pg_fetch_assoc($query_id, null); @@ -122,7 +123,7 @@ class dbal_postgres extends dbal  			$this->sql_server_version = (!empty($row['version'])) ? trim(substr($row['version'], 10)) : 0; -			if (!empty($cache)) +			if (!empty($cache) && $use_cache)  			{  				$cache->put('pgsql_version', $this->sql_server_version);  			} diff --git a/phpBB/includes/db/sqlite.php b/phpBB/includes/db/sqlite.php index 288f6e0992..8de72fd394 100644 --- a/phpBB/includes/db/sqlite.php +++ b/phpBB/includes/db/sqlite.php @@ -50,19 +50,24 @@ class dbal_sqlite extends dbal  	/**  	* Version information about used database  	* @param bool $raw if true, only return the fetched sql_server_version +	* @param bool $use_cache if true, it is safe to retrieve the stored value from the cache  	* @return string sql server version  	*/ -	function sql_server_info($raw = false) +	function sql_server_info($raw = false, $use_cache = true)  	{  		global $cache; -		if (empty($cache) || ($this->sql_server_version = $cache->get('sqlite_version')) === false) +		if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('sqlite_version')) === false)  		{  			$result = @sqlite_query('SELECT sqlite_version() AS version', $this->db_connect_id);  			$row = @sqlite_fetch_array($result, SQLITE_ASSOC);  			$this->sql_server_version = (!empty($row['version'])) ? $row['version'] : 0; -			$cache->put('sqlite_version', $this->sql_server_version); + +			if (!empty($cache) && $use_cache) +			{ +				$cache->put('sqlite_version', $this->sql_server_version); +			}  		}  		return ($raw) ? $this->sql_server_version : 'SQLite ' . $this->sql_server_version;  | 
