Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: K6-2 com Conectiva 10
Por Lafey
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Conexão ao MySQL usando classe PHP estática
Linux user
Publicado por bruno em 16/10/2009

Login: brnlino, 5049 pontos | Blog: http://sites.google.com/site/brnlinophp/
[ Hits: 4219 ]

Conexão ao MySQL usando classe PHP estática

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:

Outras dicas deste autor
Nenhuma dica encontrada.

Leitura recomendada
   Dica Linux recomendada BIOS sem opção de boot pelo CD-ROM
   Dica Linux recomendada Firewall e rede wireless, o pulo do gato!
   Dica Linux recomendada Webmail Squirrelmail - Tradução pt_BR
   Dica Linux recomendada O comando YES
   Dica Linux recomendada Backups completos com Clonezilla

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.