CRUD utilizando a classe PDO
Interações de Insert, Select, Update e Delete, entre aplicações PHP e banco de dados.
Olá, tudo bem? Espero que sim.
Quando usamos algum armazenamento de dados em nossas aplicações, em algum momento precisamos inserir registros e depois pode ser necessário ou atualizar, ou deletar, ou simplesmente consultar o que foi inserido. Essas interações com o BD (banco de dados) pode ser realizadas usando PDO. Vamos ver como?
CRUD em banco de dados
Um banco de dados é, basicamente, o armazenamento de um conjunto de dados que podem ser relacionados entre si, ou não. Porém, para manipular os dados existem 4 operações básicas: Create, Read, Update e Delete.
Create: se refere ao ato de inserir, incluir, armazenar um dado no banco. Na prática, é realizada através do comando INSERT.
Read: é sobre selecionar, consultar, buscar um dado no banco. O comando para essa operação é o SELECT.
Update: usado para atualizar, alterar, modificar um dado no banco. Seu comando é UPDATE.
Delete: como o nome sugere, é a operação de exluir, deletar, remover um dado do banco. O comando para isso é o próprio DELETE.
Realizar CRUD usando PDO
Em um artigo anterior expliquei sobre como usar a classe PDO para conexão com o BD, se quiser entender melhor sobre o PDO vale a pena uma leitura lá, está bem resumido.
Para darmos início ao uso da classe, vamos criar o nosso código PHP que instancia corretamente:
Acima, considerei que em localhost existe um banco de dados chamado geografia, o usuário é root e senha está em branco. Considere salvar esse código em um arquivo separado, sugiro o nome conexao_com_pdo.php.
Em seguida vamos fazer as interações, mas para entender melhor é necessário entender a estrutura do banco de dados que estou utilizando. A estrutura dele está explicada no artigo anterior que mencionei acima, ele é um banquinho, só tem 4 colunas. Veja lá, te espero aqui!
INSERT (create)
Vamos criar algumas variáveis com valores predefinidos e em seguida registrar. Okay?
Explicando o código acima, primeiro fazemos a inclusão do arquivo onde instanciamos a classe PDO. Em seguida criamos as variáveis com seus valores e por fim fazemos a tentativa de inserção do registro.
Na variável $sql criamos o comando insert e no $stmt preparamos o comando para execução.
Como no artigo anterior que mencionei acima eu já fiz um exemplo de INSERT (na verdade é o mesmo exemplo desse daqui), lá eu expliquei sobre o bindParam, PDO::PARAM_STR, etc.
Então, imagino que até aqui esteja tudo claro, certo? Ao executar o código acima, o registro já estará no banco de dados!
SELECT (read)
Para buscar registros no banco precisamos criar pelo menos uma variável de referência, ou seja, alguma variável que possamos usar em nossa busca para identificar os resultados que queremos.
No nosso caso, vamos usar o estado como referência. Todos os registros cujo a coluna “estado” tenha armazenado o mesmo valor que estiver na variável $estado, serão retornados em nossa busca e listados.
No exemplo acima, todos os registros de estado “SP” serão retornados.
Quando retornar mais de um registro, eles estarão organizados em uma matriz, por isso precisamos fazer fetchAll(), porque esse comando nos permite controlar o conteúdo dessa matriz.
Simples, não?
UPDATE
Para atualizar um registro precisamos de pelo menos 2 variáveis de referência. Uma é o dado que deverá ser alterado e a outra se refere à alguma identificação do registro através da cláusla WHERE.
Todos os registros identificados serão atualizados. Porém, se não usar o WHERE, todos (absolutamente todos) os registros da tabela receberão a mesma atualização.
Então, nunca esqueça: UPDATE sem WHERE é crime!!!!
Mas é simples memorizar isso! Entenda o seguinte, quando falamos em atualizar, devemos pensar em basicamente duas perguntas:
- Atualizar o quê?
- Aplicar atualização em quem?
Com isso, vamos pensar num exemplo: queremos atualizar o valor da população no registro da cidade de São Paulo. Okay! Então a população é o que queremos alterar e São Paulo é em quem queremos fazer isso. Segue o exemplo abaixo:
Na linha 9 está a sintaxe do comando UPDATE. Após informar a tabela que estamos trabalhando está o “SET”, depois dele que informamos as colunas que queremos alterar. Se for mais de uma usamos separação por “,”.
Em seguida passamos a cláusla WHERE, nele indicamos em qual registro deverá ser aplicada a atualização.
DELETE
Por fim, a instrução DELETE necessita de pelo menos 1 variável de referência que será utilizada na cláusla WHERE.
Vamos supor que queremos deletar todas as cidades que sejam do estado de São Paulo, então criamos uma variável com o valor “SP” e aplicamos o comando para deletar os registros:
Nesse exemplo existe um comando novo, na linha 14, que é o método rowCount(). Ele realiza a contagem das linhas afetadas no banco de dados após executarmos o execute(). Esperamos que a quantidade de linhas afetadas seja no mínimo 1 (se existir pelo menos uma cidade do estado “SP”), mas se não encontrar nenhum registro que corresponda à variável de referência informada no comando DELETE, o retorno da contagem será 0 e assim podemos entender que nenhum registro foi deletado.
CÓDIGO 💻
Os códigos apresentados aqui estão organizados em arquivos em uma pasta e o banco de dados no repositório do GitHub.
CONSIDERAÇÕES
Alguns problemas do dia a dia da programação exigem uma complexidade maior nos comandos apresentados. Porém, esses comandos é o fundamental e a base para tudo o que fazemos em um banco de dados.
Por isso recomendo de coração: leia, releia e pratique até dominar esse básico e em seguida ir construindo conhecimento em banco de dados, especialmente usando PDO/PHP ❤.
Abraços!