MySQL – Classe de Conexão PHP e MySQL

Nas matérias anteriores demos alguns exemplos de scripts e falamos sempre de uma conexão prática, rápida e segura!

Para complementar estes assuntos sobre a elaboração de classes de conexão usando o PHP ao MySQL.

Em anexo enviamos os ficheiros usados nesta matéria, visando facilitar ainda mais seu aprendizado e testes.

Introdução à Criação Duma Classe De Conexão Entre o PHP E O MySQL

Quem está acostumado a trabalhar com a “conexão padrão”, certamente deverá se acostumar a trabalhar com este tipo de estrutura. Porém, visando facilitar seu aprendizado e facilidade ao gerenciar estruturas maiores, demos início a este tipo de atividade!

Através da estrutura orientada a objetos, você não apenas conseguirá dar suporte como desenvolver sistemas maiores.

Claro que existe no mercado diversas classes e frameworks espalhados na Internet, mas é essencial você saber como criar e dar o suporte devido manualmente!

Criando as Tabelas na Base de Dados

Antes de partirmos para a programação, abra o arquivo script-sql.txt (disponível no ficheiro em anexo) e cole seu conteúdo no Programa utilizado para gerenciamento da base de dados.

OBS.: Neste ficheiro você deverá encontrar o código abaixo:


----- CRIANDO A TABELA tbl_usuarios -----

CREATE TABLE `tbl_usuarios` (
  `id` int(11) NOT NULL auto_increment,
  `nome` varchar(150) NOT NULL default '',
  `email` varchar(150) NOT NULL default '',
  `email2` varchar(150) default NULL,
  `senha` varchar(50) NOT NULL default '',
  `tipo` char(1) default NULL,
  `status` varchar(10) NOT NULL default '',
  PRIMARY KEY  (`id`)
);

----- INSERINDO DADOS NA TABELA tbl_produtos -----

INSERT INTO `tbl_usuarios` VALUES (1,'Administrador','comandosusa@gmail.com',NULL,'123456','a','1');
INSERT INTO `tbl_usuarios` VALUES (2,'Quemuel Aquino','comandosusa@gmail.com','comandosusa@ymail.com','123456','c','1');

Em nossas matérias de MySQL utilizamos como padrão o MySQLFront. Caso você queira utilizar este programa, clique em SQL Editor e cole o conteúdo do script (conforme imagem abaixo).

Criando a Tabela

Após criar a estrutura da base de dados, vamos agora gerar o ficheiro responsável pela conexão.

conexao_mysql.php

Podería fazer como em vários sites por aí! Apenas postar o script e você baixar, mas essa não é nossa intenção!

Como já disponibilizamos em anexo o ficheiro em anexo, vamos abordar passo a passo cada um dos scripts, efetuando comentários breves e precisos dentro do próprio ficheiro.

OBS.: Trata-se de um script simples e prático. Ideal para quem está começando a trabalhar com classes.


<?
// Na linha abaixo chamaremos a classe "conexao" (que deverá ser fechada apenas no final do ficheiro).
class conexao {

    // Nas linhas abaixo você poderá colocar as informações do Banco de Dados.
    var $host = "localhost"; // Nome ou IP do Servidor
    var $user = "root"; // Usuário do Servidor MySQL
    var $senha = ""; // Senha do Usuário MySQL
    var $dbase = "formulario"; // Nome do seu Banco de Dados

    // Criaremos as variáveis que Utilizaremos no script
    var $query;
    var $link;
    var $resultado;
    

    // Instancia o Objeto para podermos usar
    function MySQL(){
    
    }
  

  // Cria a função para efetuar conexão ao Banco MySQL (não é muito diferente da conexão padrão).
  // Veja que abaixo, além de criarmos a conexão, geramos condições personalizadas para mensagens de erro.
    function conecta(){
        $this->link = @mysql_connect($this->host,$this->user,$this->senha);
    // Conecta ao Banco de Dados
        if(!$this->link){
      // Caso ocorra um erro, exibe uma mensagem com o erro
            print "Ocorreu um Erro na conexão MySQL:";
      print "<b>".mysql_error()."</b>";
      die();
        }elseif(!mysql_select_db($this->dbase,$this->link)){
      // Seleciona o banco após a conexão
      // Caso ocorra um erro, exibe uma mensagem com o erro
            print "Ocorreu um Erro em selecionar o Banco:";
      print "<b>".mysql_error()."</b>";
      die();
        }
    }

  // Cria a função para "query" no Banco de Dados
    function sql_query($query){
        $this->conecta();
        $this->query = $query;

    // Conecta e faz a query no MySQL
        if($this->resultado = mysql_query($this->query)){
            $this->desconecta();
            return $this->resultado;
        }else{
      // Caso ocorra um erro, exibe uma mensagem com o Erro
            print "Ocorreu um erro ao executar a Query MySQL: <b>$query</b>";
      print "<br><br>";
      print "Erro no MySQL: <b>".mysql_error()."</b>";
      die();
            $this->desconecta();
        }        
    }

  // Cria a função para Desconectar do Banco MySQL
    function desconecta(){
        return mysql_close($this->link);
    }
}
?>

Agora vamos disponibilizar o script onde testaremos a funcionalidade do nosso sistema!

teste.php

Faremos neste script a mesma coisa do anterior!

Criaremos os comentários dentro do próprio código. Facilitando assim seus serviços.


<?
// Abaixo chamaremos através do include a classe que conecta ao banco de dados MySQL.
include("conexao_mysql.php");

// Instanciamos o Objeto "conexao".
$mysql = new conexao;

// Executamos abaixo uma query (nela estamos selecionando a tabela tbl_usuarios.
$listaclientes = $mysql->sql_query("select * from tbl_usuarios order by nome asc");
// Desconecta do Banco de Dados
$mysql->desconecta;

// Abaixo vamos executar um while com os resultados obtidos na query acima.
while($clientes = mysql_fetch_object($listaclientes)){
  // Imprimimos os resultados
  print $clientes->nome."<br>";
  print $clientes->email."<br>";
}
?>

Faça os testes devidos e veja que deverá aparecer em tela os 2 usuários e seus emails cadastrados.

No dia a dia você poderá personalizar este código e fazer a conexão de acordo com suas necessidades, utilizando uma estrutura leve, prática e segura.

Ficamos por aqui em mais uma matéria. Envie-nos suas dúvidas e dê suas sugestões!

Nosso compromisso é o de sempre lhe ajudar!

arquivos.zip

Be Sociable, Share!

9 Comentários

  1. Malvado

    Cara como é fácil aprender com esses exemplos obg. Mesmo, não tinha nem noção de php e com esse exemplo de conexão e MySql já estou realizando consultas entre outras, continua postando esses artigos. Agradeço por mim e por todos que estão iniciando blz!

  2. Saulo

    Ótimo post… Obrigado!

  3. Jônatas

    O melhor exemplo que eu encontrei na internet. E olha que eu fiquei uma tarde inteira procurando.
    Parabéns!

  4. Ótima classe, muito bem documentada e bem desenvolvida.

  5. FABIANO

    Muito legal esse blog.Estou com problema em um site e nao estou conseguindo solucionar. Sempre que nos conectamos ao Forum, aparece a seguinte mensagem de erro:
    SQL ERROR [ mysqli ]
    MySQL server has gone away [2006]

    Entrei em contato com nosso dominio, para verificar se o problema não seria com eles. Fui informado que precisaremos realizar uma alteração em nosso SCRIPT, que seria a seguinte: 
    “Programa meu Script para conectar-se ao banco, executar a query e encerrar a conexão” 
    Mais tenho poucos conhecimentos nessa area, e nao sei como programar o script ou ate mesmo qual script deve ser alterado. Assim, verifiquei a base e encontrei o script de conexão, poderiam me confirmar se é esse script e qual comando deveria utilizar.
    Abaixo Script:
    ficheiro de configuração do phpBB 3.0.x (…)

    • Você consegue aceder à administração do fórum? Nessa conta de hospedagem, só tem o phpBB instalado? Tem outros scripts? O erro só acontece com o phpBB? Já pesquisou no fórum do phpBB? http://www.phpbb.com/community/viewforum.php?f=46 Rui

      • FABIANO

        Consigo acessar a Administração do Forum sim. O erro acontece quando um novo usuario se cadastro no Forum, mais o cadastro é efetuado com sucesso mesmo com a mensagem.

        Sim, nessa conta temos apenas o phpBB instalado.

        No Forum do phpBB falam que é o cache que nao pode ser salvo (algo do tipo).

        Notei que outros erros estão acontecendo em nosso Forum (BD caindo), assim imagino que o erro seja em nosso provedor (Locaweb).

  6. Mayara

    Achei bastante util o post….e esta super bem explicado, parabens. So tem duas coisinhas que eu mudaria… no teste.php apos executar a query esta chamando a funcao desconecta novamente e isso nao eh necessario porque a classe conexao ja faz e eu tiraria a funcao MySql da classe conexao, porque ela nao faz nada.

  7. Wíverson

    Olá, gostaria de saber duas coisas sobre conexao php-mysql: 1ª como criar um formulário onde o usuario digita suas permissões (user e senha) para poder ter acesso a uma area do site onde ele possa trabalhar com o banco.
    2ª como criar um formulario de consulta ao banco onde eu posso filtrar dados com base em qualquer coluna da tabela do banco de dados. (obs.: os formulários sao criados em html e envia as informações para um arquivo php que vai trabalhr com o banco mysql. ufa……valeu.

Participa! Comenta... para Wíverson