Introdução ao trabalho com bancos de dados em PHP
O desenvolvimento web moderno é impensável sem o gerenciamento eficiente de dados. O PHP, como uma das linguagens de servidor mais populares, oferece aos desenvolvedores ferramentas poderosas para interagir com diversos sistemas de gerenciamento de banco de dados (SGBD). Neste artigo, abordaremos dois SGBDs fundamentalmente diferentes, mas igualmente requisitados: o relacional PostgreSQL e o orientado a documentos MongoDB.
Para desenvolvedores iniciantes, a escolha entre SQL e NoSQL pode parecer complexa. Vamos analisar as principais diferenças, aprender a conectar-se a ambos os bancos de dados a partir do PHP e executar operações CRUD básicas (Create, Read, Update, Delete). Ao final do artigo, você será capaz de escolher o SGBD adequado para o seu projeto e escrever código funcional para interagir com ele.
1. PostgreSQL: trabalhando com dados relacionais via PDO
PostgreSQL é um SGBD objeto-relacional poderoso e de código aberto. Ele suporta consultas complexas, transações e tipos de dados avançados. Para trabalhar com PostgreSQL em PHP, recomenda-se o uso da extensão PDO (PHP Data Objects), que fornece uma interface unificada para trabalhar com diferentes bancos de dados.
Conexão ao PostgreSQL via PDO
O primeiro passo é instalar o driver pdo_pgsql. Certifique-se de que ele está ativado no seu php.ini. Depois disso, você pode criar a conexão:
<?php$host = 'localhost';$dbname = 'my_database';$user = 'my_user';$password = 'my_password';
try { $pdo = new PDO("pgsql:host=$host;dbname=$dbname", $user, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Conexão ao PostgreSQL estabelecida com sucesso!";} catch (PDOException $e) { die("Erro de conexão: " . $e->getMessage());}?>Operações CRUD no PostgreSQL
Vamos trabalhar com a tabela users, contendo os campos id, name e email. Todas as consultas são executadas através de prepared statements para proteção contra injeção de SQL.
Criação de registro (Create):
<?php$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";$stmt = $pdo->prepare($sql);$stmt->execute([':name' => 'Иван Петров', ':email' => 'ivan@example.com']);echo "Usuário adicionado. ID: " . $pdo->lastInsertId();?>Leitura de dados (Read):
<?php$sql = "SELECT * FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user) { echo "Nome: " . $user['name'] . ", Email: " . $user['email'];} else { echo "Usuário não encontrado.";}?>Atualização (Update) e exclusão (Delete):
<?php// Atualização$sql = "UPDATE users SET email = :email WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':email' => 'new_email@example.com', ':id' => 1]);echo "Linhas atualizadas: " . $stmt->rowCount();
// Exclusão$sql = "DELETE FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);echo "Linhas excluídas: " . $stmt->rowCount();?>2. MongoDB: trabalhando com documentos via MongoDB PHP Library
MongoDB é um banco de dados NoSQL que armazena dados na forma de documentos flexíveis semelhantes a JSON. Para trabalhar com ele em PHP, utiliza-se a biblioteca oficial mongodb/mongodb, instalada via Composer.
Instalação e conexão ao MongoDB
Primeiro, instale a biblioteca via Composer:
composer require mongodb/mongodbDepois disso, crie a conexão ao servidor MongoDB (por padrão, funciona na porta 27017):