phpBB

Code Changes

File: includes/db/firebird.php

  Unmodified   Added   Modified   Removed
Line 28Line 28
	var $last_query_text = '';
var $service_handle = false;
var $affected_rows = 0;

	var $last_query_text = '';
var $service_handle = false;
var $affected_rows = 0;

 
	var $connect_error = '';


/**
* Connect to server


/**
* Connect to server

Line 53Line 54
			$use_database = $this->server . ':' . $this->dbname;
}


			$use_database = $this->server . ':' . $this->dbname;
}


		$this->db_connect_id = ($this->persistency) ? @ibase_pconnect($use_database, $this->user, $sqlpassword, false, false, 3) : @ibase_connect($use_database, $this->user, $sqlpassword, false, false, 3);


















		if ($this->persistency)
{
if (!function_exists('ibase_pconnect'))
{
$this->connect_error = 'ibase_pconnect function does not exist, is interbase extension installed?';
return $this->sql_error('');
}
$this->db_connect_id = @ibase_pconnect($use_database, $this->user, $sqlpassword, false, false, 3);
}
else
{
if (!function_exists('ibase_connect'))
{
$this->connect_error = 'ibase_connect function does not exist, is interbase extension installed?';
return $this->sql_error('');
}
$this->db_connect_id = @ibase_connect($use_database, $this->user, $sqlpassword, false, false, 3);
}





		$this->service_handle = (function_exists('ibase_service_attach') && $this->server) ? @ibase_service_attach($this->server, $this->user, $sqlpassword) : false;










		// Do not call ibase_service_attach if connection failed,
// otherwise error message from ibase_(p)connect call will be clobbered.
if ($this->db_connect_id && function_exists('ibase_service_attach') && $this->server)
{
$this->service_handle = @ibase_service_attach($this->server, $this->user, $sqlpassword);
}
else
{
$this->service_handle = false;
}


return ($this->db_connect_id) ? $this->db_connect_id : $this->sql_error('');
}


return ($this->db_connect_id) ? $this->db_connect_id : $this->sql_error('');
}

Line 63Line 90
	/**
* Version information about used database
* @param bool $raw if true, only return the fetched sql_server_version

	/**
* 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
*/

	* @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);

		if ($this->service_handle !== false && function_exists('ibase_server_info'))
{
return @ibase_server_info($this->service_handle, IBASE_SVC_SERVER_VERSION);

Line 462Line 498
	*/
function _sql_error()
{

	*/
function _sql_error()
{

 
		// Need special handling here because ibase_errmsg returns
// connection errors, however if the interbase extension
// is not installed then ibase_errmsg does not exist and
// we cannot call it.
if (function_exists('ibase_errmsg'))
{
$msg = @ibase_errmsg();
if (!$msg)
{
$msg = $this->connect_error;
}
}
else
{
$msg = $this->connect_error;
}

		return array(

		return array(

			'message'	=> @ibase_errmsg(),

			'message'	=> $msg,

			'code'		=> (@function_exists('ibase_errcode') ? @ibase_errcode() : '')
);
}

			'code'		=> (@function_exists('ibase_errcode') ? @ibase_errcode() : '')
);
}