diff options
Diffstat (limited to 'phpBB/includes/db')
-rw-r--r-- | phpBB/includes/db/dbal.php | 11 | ||||
-rw-r--r-- | phpBB/includes/db/mysql.php | 8 | ||||
-rw-r--r-- | phpBB/includes/db/mysql4.php | 8 |
3 files changed, 26 insertions, 1 deletions
diff --git a/phpBB/includes/db/dbal.php b/phpBB/includes/db/dbal.php index c8b0eebc76..68f2f97ade 100644 --- a/phpBB/includes/db/dbal.php +++ b/phpBB/includes/db/dbal.php @@ -213,7 +213,16 @@ class dbal } else { - $message .= '<br /><br />' . $user->lang['SQL_ERROR_OCCURRED']; + // If error occurs in initiating the session we need to use a pre-defined language string + // This could happen if the connection could not be established for example (then we are not able to grab the default language) + if (!isset($user->lang['SQL_ERROR_OCCURRED'])) + { + $message .= '<br /><br />An sql error occurred while fetching this page. Please contact an administrator if this problem persist.'; + } + else + { + $message .= '<br /><br />' . $user->lang['SQL_ERROR_OCCURRED']; + } } if ($this->transaction) diff --git a/phpBB/includes/db/mysql.php b/phpBB/includes/db/mysql.php index 57aad449d4..36dd73204c 100644 --- a/phpBB/includes/db/mysql.php +++ b/phpBB/includes/db/mysql.php @@ -285,6 +285,14 @@ class dbal_mysql extends dbal */ function _sql_error() { + if (!$this->db_connect_id) + { + return array( + 'message' => @mysql_error(), + 'code' => @mysql_errno() + ); + } + return array( 'message' => @mysql_error($this->db_connect_id), 'code' => @mysql_errno($this->db_connect_id) diff --git a/phpBB/includes/db/mysql4.php b/phpBB/includes/db/mysql4.php index 9db47f37ee..aa8e22c058 100644 --- a/phpBB/includes/db/mysql4.php +++ b/phpBB/includes/db/mysql4.php @@ -288,6 +288,14 @@ class dbal_mysql4 extends dbal */ function _sql_error() { + if (!$this->db_connect_id) + { + return array( + 'message' => @mysql_error(), + 'code' => @mysql_errno() + ); + } + return array( 'message' => @mysql_error($this->db_connect_id), 'code' => @mysql_errno($this->db_connect_id) |