[ticket/10205] Fix remaining db drivers.

PHPBB3-10205
This commit is contained in:
Oleg Pudeyev 2012-12-04 04:50:41 -05:00
parent 1a7e2211c3
commit 9f549e8249
5 changed files with 93 additions and 43 deletions

View file

@ -354,6 +354,8 @@ class dbal_mssql extends dbal
* @access private * @access private
*/ */
function _sql_error() function _sql_error()
{
if (function_exists('mssql_get_last_message'))
{ {
$error = array( $error = array(
'message' => @mssql_get_last_message(), 'message' => @mssql_get_last_message(),
@ -384,6 +386,14 @@ class dbal_mssql extends dbal
} }
@mssql_free_result($result_id); @mssql_free_result($result_id);
} }
}
else
{
$error = array(
'message' => $this->connect_error,
'code' => '',
);
}
return $error; return $error;
} }

View file

@ -359,12 +359,22 @@ class dbal_mssql_odbc extends dbal
* @access private * @access private
*/ */
function _sql_error() function _sql_error()
{
if (function_exists('odbc_errormsg'))
{ {
return array( return array(
'message' => @odbc_errormsg(), 'message' => @odbc_errormsg(),
'code' => @odbc_error() 'code' => @odbc_error()
); );
} }
else
{
return array(
'message' => $this->connect_error,
'code' => '',
);
}
}
/** /**
* Close sql connection * Close sql connection

View file

@ -438,12 +438,22 @@ class dbal_mysql extends dbal
function _sql_error() function _sql_error()
{ {
if (!$this->db_connect_id) if (!$this->db_connect_id)
{
if (function_exists('mysql_error'))
{ {
return array( return array(
'message' => @mysql_error(), 'message' => @mysql_error(),
'code' => @mysql_errno() 'code' => @mysql_errno()
); );
} }
else
{
return array(
'message' => $this->connect_error,
'code' => '',
);
}
}
return array( return array(
'message' => @mysql_error($this->db_connect_id), 'message' => @mysql_error($this->db_connect_id),

View file

@ -673,6 +673,8 @@ class dbal_oracle extends dbal
* @access private * @access private
*/ */
function _sql_error() function _sql_error()
{
if (function_exists('ocierror'))
{ {
$error = @ocierror(); $error = @ocierror();
$error = (!$error) ? @ocierror($this->query_result) : $error; $error = (!$error) ? @ocierror($this->query_result) : $error;
@ -686,6 +688,14 @@ class dbal_oracle extends dbal
{ {
$error = (isset($this->last_error_result) && $this->last_error_result) ? $this->last_error_result : array(); $error = (isset($this->last_error_result) && $this->last_error_result) ? $this->last_error_result : array();
} }
}
else
{
$error = array(
'message' => $this->connect_error,
'code' => '',
);
}
return $error; return $error;
} }

View file

@ -299,12 +299,22 @@ class dbal_sqlite extends dbal
* @access private * @access private
*/ */
function _sql_error() function _sql_error()
{
if (function_exists('sqlite_error_string'))
{ {
return array( return array(
'message' => @sqlite_error_string(@sqlite_last_error($this->db_connect_id)), 'message' => @sqlite_error_string(@sqlite_last_error($this->db_connect_id)),
'code' => @sqlite_last_error($this->db_connect_id) 'code' => @sqlite_last_error($this->db_connect_id)
); );
} }
else
{
return array(
'message' => $this->connect_error,
'code' => '',
);
}
}
/** /**
* Build db-specific query data * Build db-specific query data