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



» Screenshot
Linux: Testando o ubuntu
Por removido
» 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, 5046 pontos | Blog: http://sites.google.com/site/brnlinophp/
[ Hits: 4216 ]

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 Conectando-se à internet usando AIKO82D VIVO/MG no Ubuntu Linux 8.10 via NetwokManager
   Dica Linux recomendada Passo-a-passo: aMSN 0.97b no Ubuntu 7.04
   Dica Linux recomendada Título: Instalando e configurando wireless no Vector Linux 6.0
   Dica Linux recomendada Abstração de SGBDs
   Dica Linux recomendada ECF em Java para Linux

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.