13
2009
Conexão a Banco de Dados com PDO e PHP 5
PDO (PHP Data Objects) define uma interface de conexão a banco de dados leve e consistente para PHP 5. Há a possibilidade de utilização de diversos drivers de conexão que implementam a interface do PDO para vários tipos de bancos de dados.
Como o PDO representa uma camada de abstração de acesso aos dados, não importa qual banco de dados se utilize, as mesmas funções utilizadas para manipular dados ou recuperar informações do banco serão as mesmas.
Além de prover uma abstração no acesso aos dados, há a possibilidade de utilização das funcionalidades de OO (Orientação a Objeto) do PHP 5, bem como uso de conexões persistentes, transações, preparação de queries para melhoria da performance, dentre outras.
Segue abaixo alguns exemplos de uso do PDO para realizar um CRUD (Create Read Update Delete)
// Criando uma nova instância do PDO (nova conexão)
$pdo = new PDO('mysql:host=localhost;dbname=testepdo', $user, $pass);
// Criar o banco de dados
$pdo->exec(<<<end
CREATE TABLE products (
id INTEGER PRIMARY KEY auto_increment,
name VARCHAR(255) UNIQUE,
price FLOAT
)
END)
or exit("Falha ao criar tabela 'produtos'");
// Create: Inserir dados na tabela
$pdo->exec("INSERT INTO products (name, price) VALUES ('product 1', 2.25)")
or exit("Falha ao inserir dados em 'produtos'");
$pdo->exec("INSERT INTO products (name, price) VALUES ('product 2', 9.99)")
or exit("Falha ao inserir dados em 'produtos'");
// Read: Recuperar informações da base de dados
$result = $pdo->query('select name,price from products', PDO::FETCH_ASSOC);
while($product = $result->fetch()) {
echo $product['name'], ' = ', $product['price'], '<br/>';
}
// Update: Atualizar tuplas utilizando queries preparadas (performance) e transação
$query = $pdo->prepare("UPDATE products SET price=:price WHERE name=':product'");
$query->bindParam(":product", $product);
$query->bindParam(":price", $price);
$pdo->beginTransaction();
$items = array(
'product 1' => 120,
'product 2' => 250
);
foreach ($items as $product => $price) {
$query->execute();
}
$pdo->commit();
// Delete: simples deleção de tuplas
$total = $pdo->exec("DELETE from products where name='product 1'");
// Fechar conexão com PDO
$pdo = null;
Tags
Tópicos Recentes
- Imagens Genéricas para Layouts
- Monitore o Consumo do Plano de Dados com My Data Manager
- Simulando Múltiplos Websites Localmente com Apache
- Executando Javascript Carregado Dinamicamente por AJAX com ASP.NET MVC
- Resolvendo Problemas de Conexão GPS no Samsung Galaxy 5 com Android 2.2 (Froyo)
- YSlow para Google Chrome
- Adicionando Facilmente QR Code ao Seu Site
- Técnica Pomodoro
- Utilizando jQuery de uma CDN Pública
- Google Chrome Frame









