CRUD usando a biblioteca PDO no PHP e MySQL

crud-pdoHoje o tema será a construção de uma classe CRUD no PHP utilizando a biblioteca PDO para manipular registros no MySQL. O foco desse artigo não é HTML e CSS, por esse motivo irei trabalhar somente com scripts e códigos PHP, sem usar formulários, submissões e validações dos métodos GET e POST.

 

Mas alguns leitores podem se perguntar, “Afinal de contas o que é CRUD?”.

Create – Adicionar novo registro
Retrieve – Consultar registro
Update – Atualizar registro
Delete – Excluir registro

Nesse artigo vamos trabalhar com o seguinte cenário:
– MySQL 5.5.34
– MySQL Workbench 6.0
– PHP 5.5
– Banco de dados DB_BLOG

Para nossos exemplos vamos utilizar uma tabela ARTIGO bem simples com apenas 5 campos, sendo que o campo idArtigo é auto-incremento e o campo data tem como default TIMESTAMP do sistema, a tabela tem a seguinte estrutura:

Nossa classe CRUD vai precisar de conexão com o banco de dados, então vou utilizar uma classe de conexão PDO seguindo o padrão Singleton, a explicação das funcionalidades dessa classe estão nesse artigo que postei anteriormente.

conexao.php

 

Classe CRUD

Nesse artigo vou usar uma classe CRUD também seguindo o padrão de projeto Singleton, dessa maneira vamos trabalhar orientado a objetos, pessoalmente gosto de trabalhar com esse tipo de classe, gera uma ecônomia de código principalmente no método de consulta que em certos casos é utilizado em várias páginas, dessa maneira não é necessário construir uma consulta em cada página com instruções SQL repetidas.
crudBlog.class.php

 

O trabalho pesado está pronto, com a classe CRUD construída temos praticamente todas as funcionalidades prontas para trabalhar com a tabela ARTIGO, é interessante mencionar que pode ocorrer casos em que é necessário acrescentar métodos de consultas distintos, um exemplo seria a necessidade de se pesquisar por categoria, titulo e autor, outra situação seria adicionar um parâmetro para informar por qual campo seria ordenado a consulta e pode-se acrescentar validações antes da inclusão para não deixar repetir o mesmo cadastro, enfim a classe pode ser melhorada tudo depende da necessidade e da criatividade do programador.

Outra dica interessante para aperfeiçoar essa classe CRUD, geralmente as tabelas tem mais do que 3 campos para serem passados como parâmetro, esses métodos podem ser modificados para aceitar um array de dados contendo o valor para vários campos e na hora de passar os valores com o bindValue() usar um foreach() para percorrer o array.

 
A classe CRUD está bem comentada, com informações sobre os parâmetros de entrada e saída, os métodos de insert(), update() e delete() possuem retornos com mensagens de confirmação para o sucesso da operação, observem que todos os métodos possuem uma captura de exceção com um bloco try…catch, se ocorrer um erro será informado através de um alert() em qual linha foi disparada a PDOException.

Agora vamos aos testar nossa classe CRUD, inicialmente vamos atribuir uma instância dessa classe para uma variável $blog usando o método estático getInstance() da classe crudBlog, passar uma conexão como parâmetro para esse método e posteriormente incluir um registro com o método insert():
index.php

Mensagem de retorno do método insert():

 

 

 

 

 

 

O próximo a ser testado é o método update(), vou alterar o registro inserido anteriormente passando o id:

index.php

Mensagem de retorno do método update():

 

 

 

 

 

 

Próximo método é o delete(), será excluído o registro que foi alterado passando o id:

index.php

Mensagem de retorno do método delete():

 
E para finalizar será chamado o método getAllArtigo(), que vai retornar um array de objetos com todos os artigos cadastrados no banco de dados, basta utilizar um foreach para percorrer esse array e exibir os registros no navegador.

index.php

Retorno da consulta sendo exibido no navegador:

 
 
 
 
 
 
 
 
 
 
 
Bom pessoal esse artigo acabou ficando um pouco mais extenso que os anteriores, mas era necessário devido a quantidade de informações e exemplos que deveriam ser passados, todos os métodos foram testados e com certeza essa classe CRUD pode gerar um reaproveitamento de código no dia a dia do programador PHP. Toda as operações que envolvem o básico de um CRUD foram adicionadas nessa classe, mas deixo aberto para o leitor customizá-la de acordo com sua necessidade.
 
Até a próxima  ….
Tags:,
Show Buttons
Hide Buttons