Trabalho com bancos de dados em PHP: PostgreSQL e MongoDB

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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/mongodb

Exemplo 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]]);                

Blogs

Book Recommendations