fixed Database error handling

This commit is contained in:
Sarjuuk
2014-03-14 15:28:30 +01:00
parent ffd4c8e034
commit e1ed96ec73
2 changed files with 11 additions and 8 deletions

View File

@@ -28,10 +28,11 @@ class DB
$options = &self::$optionsCache[$idx];
$interface = DbSimple_Generic::connect(self::createConnectSyntax($options));
if (!$interface)
$interface->setErrorHandler(array('DB', 'errorHandler'));
if ($interface->error)
die('Failed to connect to database.');
$interface->setErrorHandler(array('DB', 'errorHandler'));
$interface->query('SET NAMES ?', 'utf8');
if ($options['prefix'])
$interface->setIdentPrefix($options['prefix']);

View File

@@ -38,16 +38,18 @@ class DbSimple_Mysqli extends DbSimple_Database
$this->link->options(MYSQLI_OPT_CONNECT_TIMEOUT,
isset($dsn['timeout']) && $dsn['timeout'] ? $dsn['timeout'] : 0);
$this->link->real_connect((isset($dsn['persist']) && $dsn['persist'])?'p:'.$dsn['host']:$dsn['host'],
if (@$this->link->real_connect((isset($dsn['persist']) && $dsn['persist'])?'p:'.$dsn['host']:$dsn['host'],
$dsn['user'], isset($dsn['pass'])?$dsn['pass']:'', $base,
empty($dsn['port'])?NULL:$dsn['port'], NULL,
(isset($dsn['compression']) && $dsn['compression'])
? MYSQLI_CLIENT_COMPRESS : NULL);
(isset($dsn['compression']) && $dsn['compression']) ? MYSQLI_CLIENT_COMPRESS : NULL))
{
$this->link->set_charset((isset($dsn['enc']) ? $dsn['enc'] : 'UTF8'));
$this->isMySQLnd = method_exists('mysqli_result', 'fetch_all');
}
else
return $this->_setDbError(null, 'mysqli_real_connect @ ' . $dsn['host']);
}
catch (mysqli_sql_exception $e)
{
$this->_setLastError($e->getCode() , $e->getMessage(), 'new mysqli');