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 330Line 357
		}

return (sizeof($row)) ? $row : false;

		}

return (sizeof($row)) ? $row : false;

	}

/**
* Seek to given row number
* rownum is zero-based
*/
function sql_rowseek($rownum, &$query_id)
{
global $cache;

if ($query_id === false)
{
$query_id = $this->query_result;
}

if (isset($cache->sql_rowset[$query_id]))
{
return $cache->sql_rowseek($rownum, $query_id);
}

if ($query_id === false)
{
return;
}

$this->sql_freeresult($query_id);
$query_id = $this->sql_query($this->last_query_text);

if ($query_id === false)
{
return false;
}

// We do not fetch the row for rownum == 0 because then the next resultset would be the second row
for ($i = 0; $i < $rownum; $i++)
{
if (!$this->sql_fetchrow($query_id))
{
return false;
}
}

return true;

 
	}

/**

	}

/**

Line 471Line 455
	*/
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() : '')
);
}