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]; $options = &self::$optionsCache[$idx];
$interface = DbSimple_Generic::connect(self::createConnectSyntax($options)); $interface = DbSimple_Generic::connect(self::createConnectSyntax($options));
if (!$interface) $interface->setErrorHandler(array('DB', 'errorHandler'));
if ($interface->error)
die('Failed to connect to database.'); die('Failed to connect to database.');
$interface->setErrorHandler(array('DB', 'errorHandler'));
$interface->query('SET NAMES ?', 'utf8'); $interface->query('SET NAMES ?', 'utf8');
if ($options['prefix']) if ($options['prefix'])
$interface->setIdentPrefix($options['prefix']); $interface->setIdentPrefix($options['prefix']);

View File

@@ -38,15 +38,17 @@ class DbSimple_Mysqli extends DbSimple_Database
$this->link->options(MYSQLI_OPT_CONNECT_TIMEOUT, $this->link->options(MYSQLI_OPT_CONNECT_TIMEOUT,
isset($dsn['timeout']) && $dsn['timeout'] ? $dsn['timeout'] : 0); 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, $dsn['user'], isset($dsn['pass'])?$dsn['pass']:'', $base,
empty($dsn['port'])?NULL:$dsn['port'], NULL, empty($dsn['port'])?NULL:$dsn['port'], NULL,
(isset($dsn['compression']) && $dsn['compression']) (isset($dsn['compression']) && $dsn['compression']) ? MYSQLI_CLIENT_COMPRESS : NULL))
? MYSQLI_CLIENT_COMPRESS : NULL); {
$this->link->set_charset((isset($dsn['enc']) ? $dsn['enc'] : 'UTF8'));
$this->link->set_charset((isset($dsn['enc']) ? $dsn['enc'] : 'UTF8')); $this->isMySQLnd = method_exists('mysqli_result', 'fetch_all');
}
$this->isMySQLnd = method_exists('mysqli_result', 'fetch_all'); else
return $this->_setDbError(null, 'mysqli_real_connect @ ' . $dsn['host']);
} }
catch (mysqli_sql_exception $e) catch (mysqli_sql_exception $e)
{ {