CRUD genérico com PHP e OOP - Aula 1

  • Publicado em: 23/01/2012
  • Revisado em: 25/10/2012
  • Categoria(s)PHP
  • Autor: Ricardo Bernardi
  • Newsletter: Inscreva-se

As operações de interação com banco de dados são com certeza a alma de qualquer sistema, seja ele web ou desktop. Pensando em deixar as tarefas de leitura/gravação de dados mais simples, resolvi criar um método próprio de interagir com os bancos de dados em sistemas web, utilizando toda flexibilidade da orientação a objetos com a praticidade do PHP.

O resultado é simplesmente incrível, pois o sistema ficou simples de entender e fácil de usar, além é claro de permitir a expansão e melhoria do mesmo conforme sua necessidade.

Este formatdo de CRUD será usado em nosso curso sobre o portfólio dinâmico, portanto quem está acompanhando as aulas, pode começar a estudar para chegar na hora da programação com tudo na ponta da língua.

Nesta primeira aula iremos criar os métodos de conexão com o banco de dados MySQL e também tratamento dos erros gerados quando necessário. Acompanhe a aula com muita atenção, pratique tudo que for ensinado e bom estudo à todos.

Depois de assistir, deixe um comentário com sua opinião sobre a primeira aula, aguardamos sua participação.

Mais posts desta série

Este post faz parte de uma série, confira tudo que já foi publicado sobre o mesmo assunto.

Compartilhe esse post:

Sobre o autor

Ricardo Bernardi

Sou técnico em hardware e desenvolvedor web, e sobre estes dois assuntos comecei a compartilhar aulas e artigos, tornando-me blogueiro em 2008. Em 2010 esse hobby virou profissão, e desde então tenho buscado melhorar e profissionalizar cada vez mais os projetos que mantenho na web.

Comentários

Atualmente temos 66 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.

  • Fernando Pereira comentou em

    Olá Ricardo, gostaria de saber como transformar esse arquivo banco.class.php em uma conexão mysqli; estou usando o PHP 7.2
    Grato!

    Responder
  • arturo comentou em

    Ola ótima vídeo aula parabéns muito boa didática bem ensinado gostaria de saber mais como comprar créditos do curso
    Obrigado Arturo Bernardo 63 anos Rio de Janeiro

    Responder
  • Ricardo Ferreira comentou em

    Olá Ricardo, eu estou refazendo o crud novamente, estou com uns erros devido a versão do php, pois o mysql_connect foi descontinuado na versão antiga. Eu gostaria que se fosse bom para você e para o blog, você pudesse refazer as vídeo-aulas novamente numa versão mais nova. Até ja vi várias pessoas comentando isso por aqui, que seria legal .... Abraços

    Responder
  • Leandro comentou em

    Boa noite ricardo,

    Antes de qualquer coisa, gostaria de agradecer. Suas aulas ajuda muito... Tudo funcionou de primeira. Tive uma dúvida quando foi testar a classe "banco.class.php". Quando criou o objeto, não precisou chamar a função e ela lhe mostrou a msg, Pq?

    Responder
  • Aline comentou em

    olá ricardo, muito bom vc ajudar a gente nessas questões.
    de início deu alguns erros aqui, mas fui revisando o código junto com o vídeo e consegui receber a msg: metodo conecta foi chamado. (fiquei feliz :DD)
    mas aí coloquei a senha errada pra ver se aparecia a descrição do erro como se deu no seu, mas não dá. aqui retorna:

    Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'site13837655684'@'186.202.153.4' (using password: YES) in /home/storage/e/98/6a/site1383765568/public_html/painel/classes/banco.class.php on line 30
    resultado

    e na minha linha 30 tem isso:

    $this->conexao = mysql_connect($this->servidor,$this->usuario,$this->senha,TRUE)

    ***********
    será que no seu apareceu a descrição daquele jeito pq seu servidor era local ou isso não tem nada a ver?
    se puder responder esta msg (mesmo depois de todo esse tempo que o vídeo foi gravado), eu fico muuuito grata.

    obrigada.

    Responder
  • matteusitb comentou em

    muito boa sua aulas Ricardo, me ajudou bastante, gostaria de saber se tem possibilidade de vc fazer esse crud usando pdo, já que o o mysql_query está descontinuado nas novas versões do php.
    grato

    Responder
    • A ideia das aulas era dar a lógica para que iniciantes em OO pudessem saber o caminho a ser seguido, agora fica a critério de cada um adaptar/alterar o sistema conforme necessidade.

      Responder
  • Anderson Antonio comentou em

    Olá Ricardo, Assisti as 5 aulas desse curso, muito bem bolado esse sistema de crud, agora volto aplicando e tudo ocorreu corretamente.
    Muito bom mesmo.

    Responder
  • Daniel Rodrigues comentou em

    Olá amigo, gostei muito de suas aulas, parabéns, tenho uma dúvida, como faria para inserir vários dados em uma mesma linha do banco de dados, pois o método inserir(), não funciona para isso. Agradeço desde já.

    Responder
  • Cleverton comentou em

    Estou usando essas suas aulas para criar um sistema mas estou encontrando algumas dificuldades em relação a atualização:

    em cadastro de clientes tem alguns campos que pretendo não alterar como a data de cadastro mas como não envio esse valor então quando grava os dados o campo fica como null já que foi declarado na classe cliente.

    Tentei reaproveitar sua ideia para criar uma outra function atualizarCampos sendo que só atualiza os campos que eu determine.

    Responder
  • Edson Facioli comentou em

    Olá tudo bem?

    Só deixando uma ideia. Já que é CRUD com PHP + OOP, poderia utilizar PDO que seria até mais interessante e de fácil adaptação para outros bancos de dados...

    Até mais e parabéns pelas vídeos aulas

    Responder
  • Carlos Dutra comentou em

    Olá, fiz tudo certo, legal, muito bom seu crud generico
    mas tenho um problema aqui, fiz um controle de estoque, e achei que ficou lento, pois minha net é de 15 megas.
    Mas Valeu mesmo pela dica e seu site estar muito bonito

    Responder
  • lidiane comentou em

    Não consigo fazer aparecer "o metodo conecta foi chamado" na tela. Já fiz e refiz, mas não tem jeito :/

    Responder
  • Alexandre comentou em

    Revisei várias veses o cógio e:
    Warning: require_once(classes/teste.class.php) [function.require-once]: failed to open stream: No such file or directory in C:xampphtdocscrudgenericoclassesteste.php on line 2

    Fatal error: require_once() [function.require]: Failed opening required 'classes/teste.class.php' (include_path='.;C:xamppphpPEAR') in C:xampphtdocscrudgenericoclassesteste.php on line 2

    Responder
  • Kall comentou em

    O meu código está dado o seguinte erro:

    ( ! ) Fatal error: Call to undefined method teste::trataerro() in C:\wamp\www\crudgenerico\classes\banco.class.php on line 24
    Call Stack
    # Time Memory Function Location
    1 0.0007 363520 {main}( ) ..\teste.php:0
    2 0.0024 387240 banco->__construct( ) ..\teste.php:3
    3 0.0024 387240 banco->conecta( ) ..\banco.class.php:14

    O que pode ser?
    já revisei varioas vezes meu código e não encontrei o erro.
    Grato desde já.

    Responder
  • Manasses comentou em

    Ola amigo gostei muito de suas aulas, mas quando fui fazer nao consegui obter algum resultado. ficou com a pagina em branco..

    Responder
  • Eduardo Meireles comentou em

    Bom dia, Ricardo!
    Eu gostaria de parabenizá-lo pelo profissionalismo do seu site e pela excelente didática das vídeo-aulas.
    Com apenas quatro linhas de código você resolveu um problemão que me demandou bastante tempo procurando ajuda e que parecia sem solução: a acentuação do que era puxado do banco de dados. Muito obrigado!
    Um abraço.

    Responder
  • Marcelo Américo comentou em

    Olá Ricardo,

    Acredito que meu código ficou igual o seu, entretanto não aparece nada no navegador, nem erro, sabe tem alguma ideia do que pode ser?

    Responder
  • felipemantoan comentou em

    oi por favor teste o script não sei aonde esta o erro, não imprime o echo "oi"; da conexão.

    Responder
  • fcbinfo comentou em

    Agradecendo mais uma vez pelas excelentes vídeo aulas e já antecipando as desculpas por estar fazendo mais um post. Acredito que entre ontem e hoje já postei uns 5 comentários.

    Ricardo... eu assisti e pratiquei todas as vídeo aulas do php orientado a objetos, entendi legal. De la, passei pro DAO VO e tomei um susto, ali sim ficou pesado pra mim. Então resolvi te deixar uma opinião aqui. Tente redirecionar o pessoal que sai do php oop para este crud, pois a impressão que dá (pela organização dos posts) é que a próxima aula a ser vista depois do php oop seria o DAO VO, mas acredito que este post aqui seja a continuação.

    O DAO VO, ainda não é pra mim não... fritou meu cerebro hehehe.

    Responder
    • DAO e VO é um padrão bem interessante de se usar, já o CRUD é um sistema com lógica própria que eu mesmo criei e fiz algumas adaptações, logo ele não segue um padrão de mercado, mas sim uma forma simples de fazer as operações.

      Responder
  • Jeovane comentou em

    Ola amigo estou com um problema e não sei aonde esta o erro da uma verificada em meu código que d ao seguinte erro em localhost...

    ( ! ) Warning: require_once(crudgenerico/banco.class.php) [function.require-once]: failed to open stream: No such file or directory in C:wampwwwPainel Adm Jcclassesteste.php on line 2

    Responder
  • Gabriel Duarte comentou em

    Ricardo,
    Eu fiz a primeira aula corretamente (acredito eu).
    onde você diz para colocar um:

    código fonte posts fora das regras

    Minha página não da erro. Mas não aparece o código fonte posts fora das regras
    O que aconteceu?

    Responder
  • Adriano Cavalcante comentou em

    Boa noite Ricardo, parabéns pelo projeto o código de conexão funciona no Dreamweaver ?

    Responder
  • Adriano Cavalcante comentou em

    Ricardo, você é bom, parabéns pela iniciativa, tudo no seu site é de muita qualidade...

    Responder
  • Romario Vieira Vilela comentou em

    Olá gostaria de saber se com o curso do site RBTECH " PHP Básico e PHP + MYSQL Básico " , adiquiro conhecimento suficiente para iniciar um curso de OOP...

    Responder
  • Henrique comentou em

    Mais uma excelente video aula!

    Muito obrigado Ricardo! Agora vou partindo pra segunda aula dessa série, isso sem dúvida irá me ajudar muito!

    Parabéns, continue assim!

    Responder
  • Patrick comentou em

    Fatal error: Cannot redeclare banco::conecta() in C:xampphtdocscroodclassesbanco.class.php on line 27 qual o erro

    Responder
  • Marnei comentou em

    Quero te dar os parabéns pela aula. O material é muito bom, de fácil entendimento e bem explicado. A voz ajuda também, ficou bem gravada, demonstrando um nível profissional.

    Aqui funcionou 100% e ao invés de usar servidor e banco de dados local, estou usando os do meu site, desta forma aprendo ainda mais. Vou acompanhar as outras aulas.

    Parabéns, abraço.

    Responder
  • Leonardo comentou em

    Olá, como eu resolvo este problema

    Parse error: syntax error, unexpected '}', expecting ',' or ';' in D:\EasyPHP-12.0\www\crudgenerico\classes\banco.class.php on line 27

    o código é este:

    código fonte excluído pois não foi postado conforme as regras

    Responder
  • Olá Ricardo adorei esta aula. Pow cara não sei oque esta havendo, pois executo o arquivo teste.php e nada acontece, nem mesmo um querido erro. o que você acho que está havendo. Abraço.

    Responder
  • Deep_Master comentou em

    Ricardo com com um problema esse =
    ------------------

    Warning : Unknown: failed to open stream: Arquivo ou diretório em Unknown on-line 0

    Fatal error : Unknown: Failed abertura necessária 'C :/ EasyPHP-5.3.9/www/Crud Gena © rico / banco.class.php' (include_path = ';. C: \ php \ pear') in Unknown on-line 0
    ----------------
    pode me ajudar!! Agradeço.

    Responder
  • Dagogut comentou em

    Poxa, revisei umas 3x o código inteiro, e continuo recebendo o seguinte erro:

    Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\crud\classes\banco.class.php on line 24

    na linha 24 esta assim:

    $this->conexao = mysql_connect($this->servidor,$this->usuario,$this->senha,TRUE)

    Tem a possibilidade de disponibilizar o código?
    Parabéns pelo material, não aguentava mais "somar variável pelos fóruns... :)

    Responder
    • Dagogut comentou em

      Consegui, dei uma descansada revisei o codigo pela 4x..
      O erro era algo mais simples do que pensado, esqueci de arrumar o "erro" simulado. a senha estava incorreta.

      Mais uma vez obrigado pelo material.

      Responder
  • Paulo Henrique comentou em

    Olá Ricardo suas aulas são ótimas estou fazendo tudo igualzinho, só que apareçe o seguinte erro -> Call to undefined method teste::conecta() in C:\EasyPHP-5.3.9\www\Aula\crudgenerico\classes\banco.class.php on line 14
    Você pode me ajudar ?

    Responder
  • felipe de souza comentou em

    muito obrigado Ricardo com suas vídeo aulas eu construí u meu site que gera quase 10 mil por mês

    Responder
  • Gbillig comentou em

    Ola ricardo no meu passa a passo creio que copiei tudo cer porem quando testo a pagina "teste" ocorre que dando erro ou não o código é executado 2 vezes
    pois quando coloco um erro proposital a mensagem de erro aparece duas vezes e quando corrijo o erro a mensagem "Metodo conecta foi chamado" aparece duas vezes também caso queira ver a pagina este é o link
    http://177.19.162.52/~redelink/exercicios/teste.php

    Responder
      • Gbillig comentou em

        Obrigado ricardo eu realmente tinha uma incosistencia no meu código acontece que isso:

        public function __destruct(){
          if($this->conecxao != NULL):
             mysql_close($this->conecxao);
          endif;
        }//Fim do destruct

        estava assim

        public function __destruct(){
          if($this->conecta(); != NULL):
            mysql_close($this->conecxao);
          endif;
        }//Fim do destruct

        por causa do autocompletar do dreamweaver e da minha falta de atenção

        Responder
  • Anderson comentou em

    Nessa primeira aula, fiz passo a passo aqui, mas deu o seguinte erro na conexao

    Parse error: syntax error, unexpected T_ENDIF in C:\wamp\www\oop\classes\banco.class.php on line 19

    no "endif" da public function __destruct
    aparece erro..

    alguem pode ajudar?

    Responder
  • Wanderley Almeida comentou em

    Bom dia Ricardo.
    Quero dar os parabéns pelo excelente trabalho que você vem realizando.
    Seu trabalho ajuda muito.
    Obrigado.

    Responder

Deixe seu comentário