public static function get($new_connection = false)
{
if (!isset(self::$config)) {
self::$config = server_get_config();
}
if (!db::$connection || $new_connection) {
$db = new self(self::$config['db_server'], self::$config['db_username'], self::$config['db_password'], self::$config['db_database'], self::$config['db_port']);
if (mysqli_connect_error()) {
throw new Exception(sprintf('Could not connect to database server. Error received: %s', mysqli_connect_error()), MYSQL_CONNECT_ERROR);
}
if (!$db->set_charset('utf8')) {
throw new Exception('Could not change MySQL character-set. Check your MySQL user credentials');
}
if (!$db->set_time_zone()) {
throw new Exception('Could not change MySQL time-zone. Check your MySQL user credentials');
}
if (isset($config['mysql_big_selects']) && $config['mysql_big_selects'] === true) {
if (!$db->enable_compat_mode()) {
throw new Exception('Could not change MYSQL compatbility options. Check your MySQL user permissions.');
}
}
if ($new_connection) {
return $db;
}
db::$connection = $db;
}
return db::$connection;
}