Introdução: Por que um desenvolvedor PHP precisa saber trabalhar com diferentes bancos de dados
O desenvolvimento web moderno raramente dispensa a interação com bancos de dados. O PHP, como uma das linguagens de servidor mais populares, oferece ferramentas flexíveis para trabalhar tanto com sistemas relacionais (SQL) quanto com sistemas orientados a documentos (NoSQL). Neste artigo, vamos detalhar a conexão e a execução de operações básicas com dois bancos de dados populares: PostgreSQL e MongoDB. Você aprenderá como configurar a conexão, executar consultas e processar resultados usando práticas modernas de PHP.
1. Trabalhando com PostgreSQL em PHP via PDO
PostgreSQL é um poderoso SGBD objeto-relacional. Para trabalhar com ele em PHP, recomenda-se usar a extensão PDO (PHP Data Objects), que fornece uma interface unificada para diferentes bancos de dados e aumenta a segurança por meio de consultas preparadas.
1.1 Conectando ao banco de dados
Primeiro, certifique-se de que a extensão pdo_pgsql está habilitada no seu php.ini. Exemplo de conexão:
<?php$host = 'localhost';$dbname = 'my_database';$user = 'my_user';$password = 'my_password';
try { $dsn = "pgsql:host=$host;dbname=$dbname"; $pdo = new PDO($dsn, $user, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Conexão estabelecida com sucesso";} catch (PDOException $e) { die("Erro de conexão: " . $e->getMessage());}?>1.2 Executando consultas (CRUD)
Vamos considerar as operações básicas usando a tabela users como exemplo.
Criar registro (INSERT):
<?php$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";$stmt = $pdo->prepare($sql);$stmt->execute([':name' => 'Ivan Ivanov', ':email' => 'ivan@example.com']);echo "Usuário adicionado, ID: " . $pdo->lastInsertId();?>Ler dados (SELECT):
<?php$stmt = $pdo->query("SELECT id, name, email FROM users");while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "ID: {$row['id']}, Nome: {$row['name']}, Email: {$row['email']}<br>";}?>Atualizar (UPDATE) e deletar (DELETE):
<?php// Atualizar$sql = "UPDATE users SET email = :email WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':email' => 'newemail@example.com', ':id' => 1]);
// Deletar$sql = "DELETE FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);?>2. Trabalhando com MongoDB em PHP
MongoDB é o principal banco de dados NoSQL, que armazena dados na forma de documentos semelhantes a JSON. Para trabalhar com ele em PHP, usa-se a extensão oficial mongodb e a biblioteca MongoDB PHP Library (instalada via Composer).
2.1 Instalação e conexão
Instale a biblioteca via Composer:
composer require mongodb/mongodbExemplo de conexão a um servidor MongoDB local:
<?phprequire 'vendor/autoload.php';
$client = new MongoDB\\Client("mongodb://localhost:27017");$database = $client->selectDatabase('my_database');$collection = $database->selectCollection('users');echo "Conexão com MongoDB estabelecida";?>2.2 Operações CRUD com documentos
Inserir documento (INSERT):
<?php$insertResult = $collection->insertOne([ 'name' => 'Maria Petrova', 'email' => 'maria@example.com', 'age' => 28]);echo "Documento adicionado com ID: " . $insertResult->getInsertedId();?>Buscar documentos (SELECT):
<?php$cursor = $collection->find(['age' => ['$gte' => 25]]);