PHP - Uso básico da biblioteca Doctrine DBAL
A biblioteca Doctrine DBAL oferece uma camada adicional por cima da PDO, com isso ela disponibiliza uma API de alto nível que simplifica operações que são mais verbosas e repetitivas com o PDO. Essa API conta com alguns métodos bastante úteis para fazer operações básicas de CRUD.
Criação da conexão
Antes de começar, é preciso instalar a biblioteca com o Composer, para isso é preciso rodar o seguinte comando no terminal:
composer require "doctrine/dbal"
Para criar o objeto referente a conexão, a biblioteca disponibiliza o método estático getConnection
da classe DriverManager
. Esse método espera um array com as credenciais as informações para fazer a conexão com o banco de dados.
$dbal = \Doctrine\DBAL\DriverManager::getConnection([
'dbname' => 'nomedobanco',
'user' => 'usuario',
'password' => 'senha',
'host' => 'localhost',
'driver' => 'pdo_mysql',
'driverOptions' => [
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
]
]);
OBS: a opção definida com a constante MYSQL_ATTR_INIT_COMMAND
da PDO serve para que o charset usado seja UTF-8.
Operações de CRUD
Método insert
Parâmetros:
- Primeiro: nome da tabela do banco de dados.
- Segundo: array associativo com o nome das colunas e seus valores
$dbal->insert('noticias', [
'Titulo' => 'Notícia nova!',
'Texto' => 'Texto da notícia nova.'
]);
Para obter o id do registro insertido, basta usar o método lastInsertId
$lastInsertId = $dbal->lastInsertId();
Método update
Parâmetros:
- Primeiro: nome da tabela do banco de dados.
- Segundo: array associativo com o nome das colunas e seus valores.
- Terceiro: array associativo equivalente a clausula
WHERE
do SQL.
$dbal->update('noticias', [
'Titulo' => 'Notícia nova (atualizada)!',
'Texto' => 'Texto da notícia nova (atualizada).'
], ['Id' => 1]);
Método delete
Parâmetros:
- Primeiro: nome da tabela do banco de dados.
- Segundo: array associativo com a coluna e o valor que será utilizado como critério para a exclusão.
$dbal->delete('noticias', [
'Id' => 1
]);
Busca de dados
Buscar vários registros:
$rows = $dbal->fetchAll('SELECT * FROM noticias');
Buscar um registro:
$rows = $dbal->fetchAssoc('SELECT Titulo FROM noticias WHERE Id = :id', [
'Id' => 1
]);
Buscar uma coluna de um registro:
$title = $dbal->fetchColumn('SELECT Titulo FROM noticias WHERE Id = :id', [
'Id' => 1
]);
Conclusão
A biblioteca Doctrine DBAL é uma ótima opção para o acesso ao banco de dados com PHP. Através dela as operações básicas são simplicadas, o que é de grande ajuda para agilizar as coisas.
ver todos os posts