Meu objetivo é mostrar uma maneira mais dinâmica de criar uma classe para conexão de banco de dados.
Tentarei primeiramente ser direto com o código-fonte e em seguida explicarei como construí essa classe. Esta não poderá ser a melhor, mas mostrará a forma básica de construir uma classe de conexão de forma correta, é claro que existem outras dicas de outros sites ou blogs que fazem a mesma coisa, mas segue para quem tem interesse de aprender ou aperfeiçoar.
<?php
/**
 * Classe estática com objetivo de criar conexão e executar os comandos SQL.
 * Objetivo é estabelecer a conexão, executar as dml, dql e fechar conexão.
 * @version 1.0.0
 * @author Bruno de Lima Fagundes
 */
class ConexaoMysql {
    private static $host = "localhost";
    private static $user = "root";
    private static $pass = "root";
    private static $banco = "Banco";
    /**
     * Criar conexão junto ao banco MySQL.
     * Objetivo e estabelecer a conexão e retornar o link.
     * throws  1 - Erro na conexão
     * throws  2 - Banco não existe
     * @return conexao Conexão estabelecida
     */
    public static function getConexao () {
    // Conectando e recuperando o link
        $conexao = @mysql_connect(self::$host,self::$user,self::$pass);
        if (!$conexao) throw new Exception("(".mysql_errno().") Erro ao acessar ".self::$host,1);
        if (!mysql_select_db(self::$banco,$conexao))
            throw new Exception("(".mysql_errno($conexao).") Banco de dados não existe ".self::$banco,2);
        return $conexao;
    }
    /**
     * Método para executar a Linguagem de Manipulação de Dados
     * throws  3 - Query não é DML
     * throws  4 - Erro ao executar SQL
     * @@version A
     * @param conexao $conexao Conexão já estabelecida
     * @param string $query Query já definida
     */
    public static function dml ($conexao,$query) {
        if (!self::ehDmlouDql($query) == "dml")
            throw new Exception("Query não é Linguagem de Manipulação de Dados",3);
            
        $resultado = mysql_query($query, $conexao);
        if (mysql_error($conexao))
            throw new Exception("(".mysql_errno($conexao).") ".$query,4);
    }
 
    /**
     * Método para fechar conexão
     * throws  7 - Falha em fechar conexão
     * @param conexao $conexao Conexão já estabelecida
     */
    public static function fecharConexao ($conexao) {
        if (!mysql_close($conexao))
            throw new Exception("(".mysql_errno($conexao).") Não foi possível fechar a conexão",7);
    }
}
?>
Para aquele que não compreendeu muito bem, tentarei explicar passo a passo:
A ideia inicial é criar um objeto estático que retornará a conexão do banco ou caso contrário retornará uma exceção, o objetivo não é instanciar um objeto ou chamar uma função para conexão, pois sabemos que a conexão tem como objetivo de criar simplesmente uma conexão e retornar o link da conexão, portanto foi criado usando o método estático (que não precisa instanciar o objeto).
Como quem programa a partir do PHP 5, provavelmente já programa orientada a objeto, portanto deve saber que um método estático só acessa as variáveis da classe se a variável também é estática. 
Obs.: Para acessar variável estática da classe, ao invés de usar $this, usa-se self.
O método getConexao simplesmente conecta ao banco de dados e retorna o link da conexão.
Para que possamos tratar caso o ocorra um erro e para que não pareça na tela aquela mensagem horrível para o usuário, foi criada uma exceção caso ocorra algum erro na tentativa de conexão.
Como toda conexão aberta deve ser fechada (para não sobrecarregar o banco), foi elaborado um método fecharConexao, neste caso deverá apenas informar no atributo a própria conexão já estabelecida. Como ocorre no método conexão, o mesmo há uma exceção para poder ser tratada caso ocorra algum erro ao fechar a conexão.
Peço desculpa por não detalhar mais esta dica, mas estarei editando assim que possível para deixar mais clara essa classe de conexão ao MySQL.
Para saber mais, acesse o site: 
Nenhum comentário foi encontrado.