• Home
  • Posts RSS
Blue Orange Green Pink Purple

PHP ARTE

PHP ARTE seu curso de PHP online completamente gratuito passo a passo. Semanalmente estaremos colocando aulas para vocês seguindo o conteúdo programático para que você não se perca. Nossa intenção não é corrigir seu script ou criar um script para você, mas sim fazer com que você aprenda a criar e corrigir seus próprios scripts.

Aula 19 - Classe Mysql Simples

Primeiramente desculpe pela demora, mas o bicho tá pegando, quase recebemos nossa segunda doação de R$10,00 mas infelizmente foi cancelada rssss. Então continuamos com apenas 1 doação em praticamente 1 ano de BLOG rsss, mas enfim fazer o que né.

Bem galera não está dando para seguir o planejamento das aulas devido ao tempo que está curto, estou tento que pegar vários freelas baratinhos para pagar as contas, e isso acaba que toma o tempo todo.

Hoje vou postar para vocês um exemplo de como podemos abstrair tarefas simples e rotineiras como o update, delete, insert e select em um banco de dados.

Para os críticos, obsecados por designer patterns, segurança e tudo mais, antes de me fazer perder meu tempo lendo seu comentário leia com bastante atenção a linha abaixo:

"Estas classes tem como propósito apenas o estudo de como utilizar orientação a objetos para abstrair tarefas rotineiras, estas classes não são a solução do universo e o mundo inteiro vai utilizar, é apenas para as pessoas que acompanham o blog começarem a se interagir com o que aprenderam + prática"

Bem dito isto, vamos lá nossa idéia então é fazer uma classe para conectar no banco e outra para minimizar a tarefa de atualizar, deletar, inserir e selecionar, minha conexão não permite gravar vídeo então vou postar os códigos coloquei o máximo de comentários possível rsss por isso parece grande, mas creio que todos vão conseguir entender, senão é só mandar um comentário.

Como ficou tudo embolado então estou disponibilizando os arquivos para download, se tiver link quebrado ou coisas do tipo manda um comentário:

DOWNLOAD 1 - Classe Mysql
DOWNLOAD 2 - Classe Mysql

Criando nossa classe de conexão
conexao.class.php


<?php

class Conexao
{
    /**
     * Constante responsável por armazenar o servidor do banco
     *
     */
    const DB_HOST='localhost';
   
    /**
     * Constante responsável por armazenar o nome do banco
     *
     */
   
    const DB_NOME='emig';
   
    /**
     * Constante responsável por armazenar o nome do usuário do banco
     *
     */
   
    const DB_USER='root';
   
    /**
     * Constante responsável por armazenar a senha do banco
     *
     */
    const DB_PASS='';
   
    /**
     * Método construtor, executado "automaticamente" quando iniciada classe
     */
    function __construct()
    {
       
    }
   
    /**
     * Método responsável por conectar no banco
     */
    public function Conecta()
    {
       
        //lembrando que self referencia a própria classe no nosso caso
        //estamos chamando uma constante que está definida nesta classe
        //então conectar ao banco
        $con = mysql_connect(self::DB_HOST,self::DB_USER,self::DB_PASS) or die ('Erro ao conectar: ' .mysql_error());
       
        //Agora vamos selecionar o banco de dados
        $db = mysql_select_db(self::DB_NOME) or die ('Erro ao selecionar o banco: ' .mysql_error());
       
    }
  
}
?>

Bem acho que não tem praticamente nada para eu explicar ai não né? rsss

Agora vamos criar a classe que vai fazer aquela tarefa de atualizar, remover, inserir e selecionar

manipulasql.class.php

<?php
class ManipulaSql extends Conexao
{
    /**
     * Propriedade responsável por retornar os resultados das querys
     *
     */
    public $content;
  
    /**
     * Método responsável por executar um SELECT no banco de dados
     *
     * Utilização:
     *
     * $sql = "SELECT Codigo, Nome, Descricao FROM produtos";
     * $s = new ManipulaSql();
     * $s->Seleciona($sql);
     * if(!empty($s->content))
     * {
     *     foreach ($s->content as $v)
     *     {
     *         echo 'Código: ' .$v[0]. '
';
     *         echo 'Nome: ' .$v[1]. '
';
     *         echo 'Descrição: ' .$v[2]. '
';
     *         echo '
';
     *     }
     * } else {
     *         echo 'Não foram encontrados registros em sua pesquisa.';
     * }
     *
     * @param string $qry
     * @return array
     */
    public function Seleciona($qry)
    {
        //como extendemos a classe Conexao, então podemos utilizar
        //os metodos herdados pela mesma (não vou entrar em detalhes sobre visibilidade)
        //conecta no banco de dados
        $con = Conexao::Conecta();
      
        //executa a query
        $exec = mysql_query($qry) or die('Erro ao executar a query: ' .mysql_error());
        //faço um loop nos resultados e vou armazendo em nossa variável $content
        //que é responsável por nos retornar os dados da consulta
        while($row = mysql_fetch_array($exec)) {
               $this->content[] = $row;
           }

        //retorno os dados
        return $this->content;
  
    }
  
    /**
     * Método responsável executar um INSERT no banco
     *
     * Utilização:
     *
     * $sql = "INSERT INTO tabela(campo1) VALUES ('algo1')";
     * $i = new ManipulaSql();
     * $i->Insere($sql);
     * if(!empty($i->content))
     * {
     *         echo 'O registro ' .$i->content. ' foi adicionado a base de dados.';
     * } else {
     *         echo 'Nenhum registro foi adicionado.';
     * }
     *
     * @param string $qry
     * @return int
     */
    public function Insere($qry)
    {
      
        //conecta no banco de dados
        $con = Conexao::Conecta();
      
        //executa a query
        $exec = mysql_query($qry) or die('Erro ao executar a query: ' .mysql_error());
        //reonsável por armazenar o ID gerado
        //em nossa variável de retorno $this->content
        $this->content = mysql_insert_id();

        //retorna o id do cadastro
        return $this->content;
  
    }
  
    /**
     * Método responsável executar um UPDATE no banco
     *
     * Utilização:
     *
     * $sql = "UPDATE tabela SET campo1='algo1' WHERE campo='algo'";
     * $a = new ManipulaSql();
     * $a->Atualiza($sql);
     * if(!empty($a->content))
     * {
     *         echo 'Foi(ram) atualizado(s) ' .$a->content. ' registro(s)';
     * } else {
     *         echo 'Nenhum registro foi atualizado.';
     * }
     *
     * @param string $qry
     * @return int
     */
    public function Atualiza($qry)
    {
      
        //conecta no banco de dados
        $con = Conexao::Conecta();
      
        //executa a query
        $exec = mysql_query($qry) or die('Erro ao executar a query: ' .mysql_error());
        //reonsável por armazenar o número de linhas alteradas
        //em nossa variável de retorno $this->content
        $this->content = mysql_affected_rows();

        //retorna o id do cadastro
        return $this->content;
  
    }
  
    /**
     * Método responsável executar um DELETE no banco
     *
     * Utilização:
     *
     * $sql = "DELETE FROM nome_tabela WHERE campo='algo'";
     * $r = new ManipulaSql();
     * $r->Remove($sql);
     * if(!empty($r->content))
     * {
     *         echo 'Foi(ram) removido(s) ' .$r->content. ' registro(s).';
     * } else {
     *         echo 'Nenhum registro foi removido.';
     * }
     *
     * @param string $qry
     * @return int
     */
    public function Remove($qry)
    {
      
        //conecta no banco de dados
        $con = Conexao::Conecta();
      
        //executa a query
        $exec = mysql_query($qry) or die('Erro ao executar a query: ' .mysql_error());
        //reonsável por armazenar o número de linhas alteradas
        //em nossa variável de retorno $this->content
        $this->content = mysql_affected_rows();

        //retorna o id do cadastro
        return $this->content;
  
    }
  
  
}
?>

E por fim vamos mostrar como utilizar apesar que já coloquei como utilizar na propria classe, mas vou mostrar de qualquer forma para ficar bem claro!

index.php
<?php
//Primeiramente eu incluo as nossas duas classes
require_once('conexao.class.php');
require_once('manipulasql.class.php');



#Fazendo um select

//Monto minha query de consulta
$sql = "SELECT Codigo, Nome, Descricao FROM produtos";
//Instancio a classe de manipulação
$s = new ManipulaSql();
//executo o método reponsável por selecionar os dados passando como parametro
//a nossa query
$s->Seleciona($sql);
//nosso método retorna o objeto content que contém os dados da consulta
//então vamos verificar se nossa consulta retornou alguma informação
if(!empty($s->content))
{
    //caso sim, então vamos listar estes dados encontrados
    foreach ($s->content as $v)
    {
        //se você está se perguntando o que são este 0,1,2 é simples, observe nossa
        //query: SELECT Codigo, Nome, Descricao FROM produtos, olhou viu alguma
        //relação com o 0,1 e 2? Pois bem, este índices da array, nos retornam
        //exatamente na ordem que especificamos na query, como as array se iniciam
        //do 0(zero), logo $v[0] é o Codigo, e assim por diante. Moleza?
        echo 'Código: ' .$v[0]. '
';
        echo 'Nome: ' .$v[1]. '
';
        echo 'Descrição: ' .$v[2]. '
';
        echo '
';
    }
  
//Caso a nossa consulta não tenha retornado nenhum resultado, então exibe o erro
} else {
    echo 'Não foram encontrados registros em sua pesquisa.';
}

#fazendo um insert

//Monto minha query de inserir
$sql = "INSERT INTO tabela(campo1) VALUES ('algo1')";
//Instancio a classe de manipulação
$i = new ManipulaSql();
//executo o método reponsável por inserir os dados passando como parametro
//a nossa query de inserir
$i->Insere($sql);
//nosso método retorna o objeto content que contém informações sobre a ação efetuada
//no caso o INSERT
//então vamos verificar se nossa consulta retornou alguma informação
if(!empty($i->content))
{
    echo 'O registro ' .$i->content. ' foi adicionado a base de dados.';
  
//Caso a nosso insert não tenha sido efetuado, então exibe o erro
} else {
    echo 'Nenhum registro foi adicionado.';
}

#fazendo um update

//Monto minha query de Atualizar
$sql = "UPDATE tabela SET Campo='Algo' WHERE Campo='algumacosa'";
//Instancio a classe de manipulação
$a = new ManipulaSql();
//executo o método reponsável por atualizar os dados passando como parametro
//a nossa query de update
$a->Atualiza($sql);
//nosso método retorna o objeto content que contém informações sobre a
//ação efetuada no caso o UPDATE
//então vamos verificar se nosso update retornou alguma informação
if(!empty($a->content))
{
    echo 'Foi(ram) atualizado(s) ' .$a->content. ' registro(s)';
  
//Caso a nosso UPDATE não tenha sido efetuado, então exibe o erro
} else {
    echo 'Nenhum registro foi atualizado.';
}


#fazendo um delete

//Monto minha query de Remover
$sql = "DELETE FROM nome_tabela WHERE campo='algo'";
//Instancio a classe de manipulação
$r = new ManipulaSql();
//executo o método reponsável por atualizar os dados passando como parametro
//a nossa query de DELETE
$r->Remove($sql);
//nosso método retorna o objeto content que contém informações sobre a
//ação efetuada no caso o DELETE
//então vamos verificar se nosso delete retornou alguma informação
if(!empty($r->content))
{
    echo 'Foi(ram) removido(s) ' .$r->content. ' registro(s).';

//Caso a nosso DELETE não tenha sido efetuado, então exibe o erro
} else {
    echo 'Nenhum registro foi removido.';
}
?>






Se possível deixe um cafezinho para a gente!

+Ler mais 4 comentários | Postado por Marco | edit post
Postagens mais recentes Postagens mais antigas Página inicial

PHP ARTE

  • Sobre nós

      Follow-me @fmacedos Fernando:
      Trabalho com desenvolvimento web e irei passar um pouco sobre PHP, tanto para quem está iniciando ou para quem já conhece a linguagem que deseja se manter atualizado, conhecer as novas tendências desta tecnologia que vem crescendo e sendo cada vez mais utilizada no mundo WEB.
      .

      Marco:
      Sou de Lavras Novas, trabalho com desenvolvimento freelancer e auxiliar de serviços gerais em um pousada e vou tentar passar um pouco do que sei para vocês sobre PHP de uma forma que fique fácil de aprender !
      Não sou um especialista, nem formado com pós graduação e milhões de certificado, sou apenas um usuário que aprendeu a programar na raça e estou tentando passar um pouco disto que aprendi para frente!


  • Contato

      E-mail: phparte@gmail.com
  • Busca


  • Forum Código Fonte
    Forum Código Fonte




  • Tags

    • apache (1)
    • apresentação (1)
    • atributos (1)
    • aula (8)
    • basico (11)
    • classe (1)
    • comparacao (1)
    • cookies (1)
    • correcao (1)
    • CRUD (1)
    • curso (3)
    • curso php (2)
    • curso php gratis (1)
    • curso php mysql gratuito (2)
    • curso php via skype (1)
    • doacao (1)
    • encapsulamento (2)
    • escopo (1)
    • estrutura de controle (1)
    • evento (1)
    • exercicio (2)
    • fim do blog (1)
    • gratis (3)
    • IDE (1)
    • include (1)
    • instalação (1)
    • introducao (1)
    • logicos (1)
    • login (1)
    • loops (1)
    • matematicos (1)
    • métodos (1)
    • mysql (2)
    • off (1)
    • OOP (1)
    • operadores (3)
    • orientação à objeto (2)
    • painel controrle (1)
    • parametros get (1)
    • PHP (19)
    • php oop poo (1)
    • php aula function (1)
    • php aula servidor (1)
    • php clausulas mysql (1)
    • php mysql (1)
    • require (1)
    • session (1)
    • variaveis sistema (1)
    • xampp (1)

    Arquivo

    • ►  2011 (4)
      • ►  30 outubro - 6 novembro (1)
      • ►  22 maio - 29 maio (1)
      • ►  13 março - 20 março (1)
      • ►  16 janeiro - 23 janeiro (1)
    • ▼  2010 (15)
      • ►  19 dezembro - 26 dezembro (1)
      • ►  21 novembro - 28 novembro (1)
      • ►  17 outubro - 24 outubro (1)
      • ►  26 setembro - 3 outubro (1)
      • ▼  29 agosto - 5 setembro (1)
        • Aula 19 - Classe Mysql Simples
      • ►  1 agosto - 8 agosto (1)
      • ►  27 junho - 4 julho (2)
      • ►  6 junho - 13 junho (1)
      • ►  2 maio - 9 maio (1)
      • ►  7 março - 14 março (1)
      • ►  28 fevereiro - 7 março (1)
      • ►  21 fevereiro - 28 fevereiro (1)
      • ►  31 janeiro - 7 fevereiro (1)
      • ►  3 janeiro - 10 janeiro (1)
    • ►  2009 (20)
      • ►  20 dezembro - 27 dezembro (1)
      • ►  6 dezembro - 13 dezembro (1)
      • ►  29 novembro - 6 dezembro (1)
      • ►  15 novembro - 22 novembro (2)
      • ►  8 novembro - 15 novembro (1)
      • ►  18 outubro - 25 outubro (1)
      • ►  11 outubro - 18 outubro (1)
      • ►  4 outubro - 11 outubro (1)
      • ►  27 setembro - 4 outubro (3)
      • ►  20 setembro - 27 setembro (5)
      • ►  13 setembro - 20 setembro (3)
    • Home
    • Posts RSS

    © Copyright PHP ARTE - Vídeo aula PHP e Mysql Grátis. All rights reserved.
    Bloggerized by FalconHive.com

    Voltar ao topo