Se você está desenvolvendo aplicações PHP que interagem com bancos de dados, é essencial usar uma abordagem segura e eficiente para manipular dados. Uma das melhores maneiras de fazer isso é usando o PDO (PHP Data Objects), uma extensão que permite acessar diferentes bancos de dados de maneira consistente e segura, além de oferecer proteção contra ataques de SQL Injection. Neste post, veja como fazer Insert, update e delete com PDO em PHP.
O que é PDO?
O PDO é uma interface que unifica o acesso a diferentes sistemas de gerenciamento de banco de dados em PHP. Ele suporta vários tipos de bancos de dados (MySQL, PostgreSQL, SQLite, etc.) e oferece uma maneira mais segura de trabalhar com SQL, principalmente quando combinado com statements preparados (prepared statements).
Conectando ao banco de dados com PDO
Antes de inserir, atualizar ou deletar dados, é necessário se conectar ao banco de dados. Aqui está um exemplo de como se conectar a um banco MySQL usando PDO:
<?php
try {
$pdo = new PDO("mysql:host=localhost;dbname=meubanco", "usuario", "senha");
// Configura o PDO para lançar exceções em caso de erros
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Conexão bem-sucedida!";
} catch (PDOException $e) {
echo "Erro ao conectar ao banco de dados: " . $e->getMessage();
}
?>
Esse código tenta estabelecer uma conexão com o banco de dados meubanco. Se a conexão falhar, ele captura a exceção e exibe uma mensagem de erro.
Como fazer um INSERT com PDO
Inserir dados no banco de dados é uma das operações mais comuns. Com PDO, você pode usar prepared statements, que são mais seguros e protegem contra injeções de SQL.
Exemplo de INSERT:
<?php
try {
// Conectando ao banco
$pdo = new PDO("mysql:host=localhost;dbname=meubanco", "usuario", "senha");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Preparar o SQL para inserção
$sql = "INSERT INTO usuarios (nome, email, idade) VALUES (:nome, :email, :idade)";
$stmt = $pdo->prepare($sql);
// Bind dos parâmetros
$stmt->bindParam(':nome', $nome);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':idade', $idade);
// Definir valores e executar
$nome = "João Silva";
$email = "joao@example.com";
$idade = 30;
$stmt->execute();
echo "Novo usuário inserido com sucesso!";
} catch (PDOException $e) {
echo "Erro ao inserir: " . $e->getMessage();
}
?>
Neste exemplo, o bindParam()
é usado para associar variáveis aos parâmetros da consulta, protegendo contra SQL Injection. O comando execute()
insere os dados no banco.
Como fazer um UPDATE com PDO
O UPDATE é usado para modificar os dados existentes no banco. Assim como no INSERT, podemos usar prepared statements para maior segurança.
Exemplo de UPDATE:
<?php
try {
// Conectando ao banco
$pdo = new PDO("mysql:host=localhost;dbname=meubanco", "usuario", "senha");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Preparar o SQL para atualização
$sql = "UPDATE usuarios SET email = :email WHERE id = :id";
$stmt = $pdo->prepare($sql);
// Bind dos parâmetros
$stmt->bindParam(':email', $email);
$stmt->bindParam(':id', $id);
// Definir valores e executar
$email = "joaosilva@example.com";
$id = 1; // Atualizando o usuário com ID 1
$stmt->execute();
echo "Dados atualizados com sucesso!";
} catch (PDOException $e) {
echo "Erro ao atualizar: " . $e->getMessage();
}
?>
Neste código, estamos atualizando o email de um usuário onde o ID é igual a 1. O bindParam()
garante que os valores sejam corretamente associados aos parâmetros da consulta.
Como fazer um DELETE com PDO
Agora, vamos ver como deletar registros do banco de dados usando PDO. O processo é semelhante ao INSERT e UPDATE.
Exemplo de DELETE:
<?php
try {
// Conectando ao banco
$pdo = new PDO("mysql:host=localhost;dbname=meubanco", "usuario", "senha");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Preparar o SQL para exclusão
$sql = "DELETE FROM usuarios WHERE id = :id";
$stmt = $pdo->prepare($sql);
// Bind do parâmetro
$stmt->bindParam(':id', $id);
// Definir valor e executar
$id = 1; // Deletando o usuário com ID 1
$stmt->execute();
echo "Usuário deletado com sucesso!";
} catch (PDOException $e) {
echo "Erro ao deletar: " . $e->getMessage();
}
?>
Aqui, o registro do usuário com o ID fornecido é removido do banco de dados.
Segurança com PDO
O PDO é extremamente útil para garantir que as consultas SQL sejam seguras e protegidas contra ataques de injeção de SQL. O uso de prepared statements com bindParam()
ou bindValue()
previne que valores maliciosos sejam inseridos diretamente na consulta SQL, evitando vulnerabilidades de segurança.
O PDO é uma ferramenta poderosa e segura para realizar operações no banco de dados em PHP, como INSERT, UPDATE, e DELETE. Com ele, você pode garantir que suas interações com o banco sejam mais seguras, graças ao uso de prepared statements, que previnem SQL Injection.
Então conheça o curso online que já ajudou milhares de pessoas a aprender a programar e desenvolver seus próprios projetos do ZERO e usando orientação a objetos de uma forma fácil de entender.
CLIQUE NA IMAGEM ABAIXO E SAIBA MAIS:
Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?
Sobre o Autor
0 Comentários