/** * Iniciar uma conexão com o banco de dados e retorna um objeto PDO. * @return PDO */ private static function Conectar() { try { if (self::$Connect == null) { if (!self::$Config) { self::$Config = get_config('db' . (IS_LOCAL ? '-local' : null)); } $dsn = 'mysql:host=' . self::$Config['host'] . ';dbname=' . self::$Config['database'] . ';charset=utf8'; $options = [PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8']; self::$Connect = new PDO($dsn, self::$Config['user'], self::$Config['password'], $options); self::$Connect->exec('SET NAMES utf8'); self::$Connect->exec('SET CHARACTER SET utf8'); self::$Connect->exec('SET time_zone = \'' . date_default_timezone_get() . '\''); } } catch (PDOException $e) { throw new Exception('Não foi possível conectar a base de dados.'); } catch (Exception $e) { throw new Exception('Não foi possível conectar a base de dados.'); } self::$Connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return self::$Connect; }