Ejemplo n.º 1
0
    public static function connect()
    {
        try {
            if (self::$pdoConn == null) {
                self::$dsn = "mysql:host=" . HOSTNAME . ";dbname=" . DBNAME . "; port=" . MYSQLPORT;
                self::$pdoConn = new PDO(self::$dsn, USERNAME, PASSWORD);
                self::$pdoConn->exec("set names utf8");
                //self::$pdoConn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
                self::$pdoConn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                //self::$pdoConn->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
                //parent::__construct(self::$pdoConn);
            }
            return self::$pdoConn;
            //parent::__construct(self::$pdoConn);
        } catch (PDOException $e) {
            if ($e->getCode() == '1049') {
                die('Erro mysql[1049]: O banco ' . strtoupper(DBNAME) . ' não existe');
            } else {
                if ($e->getCode() == '2002') {
                    die('Erro mysql[2002]: O host "' . strtoupper(HOSTNAME) . '" não é conhecido ou a porta de conexão está incorreta.
					<p><strong>Possíveis soluções: </strong></p>
					<ul>
						<li>Verifique se o caminho do host está correto.</li>
						<li>Verifique se a porta de conexão do mysql está correta (a porta padrão é: 3306).</li>
					</ul>
					');
                } else {
                    if ($e->getCode() == '1044') {
                        die('Erro mysql[1044]: Acesso negado para o usuário "' . USERNAME . '@localhost" para banco de dados ' . strtoupper(DBNAME) . ' 
					<p><strong>Possível solução: </strong>Verifique se o nome de usuário da conexão está correta.</p>
					<p>' . $e->getMessage() . '
					');
                    } else {
                        if ($e->getCode() == '1045') {
                            die('Erro mysql[1044]: Acesso negado para o usuário "' . USERNAME . '@localhost" com senha para banco de dados ' . strtoupper(DBNAME) . '.
					<p><strong>Possível solução: </strong>Verifique se o nome de usuário e a senha da conexão estão corretas.</p>
					<p>' . $e->getMessage() . '
					');
                        } else {
                            die('Conexão falhou. Erro: ' . $e->getMessage());
                        }
                    }
                }
            }
        }
    }