Trabalhando com PDO
Use Objetos de Dados do PHP (PDO) para interagir com bancos de dados
Trabalhando com PDO é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 6 de 6. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 6 aulas no total.
Visão geral do PDO
Trabalhando com PDO
Boas-vindas à próxima lição! Nesta lição, você aprenderá a usar o PDO (Objetos de Dados do PHP) para interagir com bancos de dados. O PDO é uma forma flexível e segura de conectar-se a bancos de dados e trabalhar com eles. Vamos começar!

O que é PDO?
O que é PDO?
O PDO (Objetos de Dados do PHP) é uma camada de acesso a bancos de dados que fornece uma interface uniforme para trabalhar com diferentes sistemas de banco de dados. Ele é compatível com diversos bancos de dados, como MySQL, PostgreSQL, SQLite e outros.
Principais recursos:
- Independência de banco de dados (funciona com vários tipos de banco de dados).
- Suporte integrado a instruções preparadas.
- Opções avançadas de tratamento de erros.
Dica: O PDO é uma ótima opção para criar aplicativos web seguros e escaláveis.
Conectando-se a um banco de dados com PDO
Conectando-se a um banco de dados com PDO
Para conectar-se a um banco de dados usando PDO, você precisa de:
- O nome da fonte de dados (DSN), incluindo o tipo, o servidor e o nome do banco de dados.
- Um nome de usuário e uma senha válidos.
Exemplo:
Dica: Use variáveis de ambiente ou arquivos de configuração para armazenar credenciais confidenciais.
<?php
$dsn = "mysql:host=localhost;dbname=testdb";
$username = "root";
$password = "";
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully!";
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Executando consultas
Executando consultas
O PDO fornece dois métodos principais para executar consultas:
exec(): Para instruções que não retornam resultados (por exemplo,INSERT,UPDATE).query(): Para instruções que retornam resultados (por exemplo,SELECT).
Exemplo:
<?php
// Insert a record
$pdo->exec("INSERT INTO users (name, email) VALUES ('Alice', 'alice@mail.com')");
// Retrieve records
$stmt = $pdo->query("SELECT * FROM users");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "Name: " . $row["name"] . ", Email: " . $row["email"] . "<br>";
}
?>
Usando instruções preparadas
Usando instruções preparadas
As instruções preparadas são essenciais para uma interação segura e eficiente com o banco de dados. Exemplo:
Dica: Use marcadores de posição (:email) para evitar injeções de SQL.
<?php
$sql = "SELECT * FROM users WHERE email = :email";
$stmt = $pdo->prepare($sql);
$stmt->execute(["email" => "alice@mail.com"]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
echo "Name: " . $user["name"];
?>
Tratamento de erros no PDO
Tratamento de erros no PDO
O PDO é compatível com três modos de tratamento de erros:
ERRMODE_SILENT: Os erros precisam ser verificados manualmente.ERRMODE_WARNING: Os erros geram avisos do PHP.ERRMODE_EXCEPTION: Os erros lançam exceções (recomendado).
Exemplo:
<?php
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$pdo->exec("INVALID SQL STATEMENT");
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
?>
Obtendo dados
Obtendo dados
O PDO fornece vários métodos de obtenção:
fetch(): Recupera uma única linha.fetchAll(): Recupera todas as linhas.fetchColumn(): Recupera o valor de uma única coluna.
Exemplo:
<?php
$stmt = $pdo->query("SELECT name FROM users");
while ($name = $stmt->fetchColumn()) {
echo "User: " . $name . "<br>";
}
?>Gerenciamento de transações
Gerenciamento de transações
Use transações para executar várias consultas como uma única unidade. Exemplo:
Dica: Use transações para garantir a integridade dos dados.
<?php
try {
$pdo->beginTransaction();
$pdo->exec("INSERT INTO users (name, email) VALUES ('Bob', 'bob@mail.com')");
$pdo->exec("INSERT INTO users (name, email) VALUES ('Charlie', 'charlie@mail.com')");
$pdo->commit();
echo "Transaction successful!";
} catch (PDOException $e) {
$pdo->rollBack();
echo "Transaction failed: " . $e->getMessage();
}
?>
Muito bem!
Muito bem!
Parabéns! Você aprendeu a usar o PDO para interagir com bancos de dados de forma segura e eficiente, incluindo conectar-se, executar consultas e gerenciar transações. Na próxima lição, exploraremos técnicas avançadas de consulta SQL com PDO. Vamos continuar programando!

Perguntas Frequentes
A aula “Trabalhando com PDO” é grátis?
Sim — o texto completo de “Trabalhando com PDO” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 6 aulas no total.
O que vou aprender em “Trabalhando com PDO”?
Use Objetos de Dados do PHP (PDO) para interagir com bancos de dados Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar PHP Academy?
Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 6 de 6.
Quanto tempo leva a aula “Trabalhando com PDO”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de PHP Academy?
Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Introdução a bancos de dados
- Conectando-se a um banco de dados MySQL
- Gerenciando tabelas
- Realizando operações CRUD
- Instruções preparadas
- Trabalhando com PDO