Trabalho com bancos de dados em PHP: PostgreSQL e MongoDB para iniciantes

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 PHP e bancos de dados são uma força

\n\n

Qualquer site ou aplicativo moderno não é apenas um conjunto de páginas, mas um sistema dinâmico que armazena e processa dados. PHP, como uma das linguagens mais populares para desenvolvimento web, fornece ferramentas poderosas para trabalhar com bancos de dados. Neste artigo, abordaremos dois sistemas-chave de gerenciamento de bancos de dados (SGBDs): o relacional PostgreSQL e o orientado a documentos MongoDB.

\n\n

Para um iniciante, a escolha entre eles pode parecer difícil, mas na verdade cada um resolve seus próprios problemas. PostgreSQL é um padrão SQL confiável para dados estruturados, enquanto MongoDB é um sistema NoSQL flexível para prototipagem rápida e trabalho com documentos semelhantes a JSON. Mostraremos como conectar-se a ambos a partir do PHP, realizar operações básicas (CRUD) e dar dicas práticas.

\n\n

1. Preparação do ambiente: o que instalar

\n\n

Antes de escrever código, certifique-se de ter as extensões PHP necessárias instaladas. Para trabalhar com PostgreSQL, é necessária a extensão pdo_pgsql; para MongoDB, a extensão mongodb (via PECL ou composer).

\n\n

Instalação das extensões

\n
    \n
  • PostgreSQL: descomente a linha extension=pdo_pgsql no php.ini ou instale via gerenciador de pacotes (por exemplo, sudo apt install php-pgsql).
  • \n
  • MongoDB: use o Composer: composer require mongodb/mongodb — isso instalará a biblioteca oficial.
  • \n
\n\n

Após a instalação, verifique se as extensões estão ativas executando php -m | grep -i pgsql e php -m | grep -i mongodb.

\n\n

2. PostgreSQL e PHP: confiabilidade e SQL

\n\n

PostgreSQL é um SGBD relacional poderoso com suporte a transações ACID, consultas complexas e campos JSON. Para trabalhar com ele em PHP, o mais conveniente é usar PDO (PHP Data Objects) — uma interface universal.

\n\n

Conexão ao PostgreSQL

\n

Crie um arquivo connect_pgsql.php:

\n
<?php\n$host = 'localhost';\n$dbname = 'testdb';\n$user = 'postgres';\n$pass = 'password';\n\ntry {\n    $pdo = new PDO("pgsql:host=$host;dbname=$dbname", $user, $pass);\n    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n    echo "Conexão ao PostgreSQL bem-sucedida!";\n} catch (PDOException $e) {\n    die("Erro de conexão: " . $e->getMessage());\n}\n?>
\n\n

Operações CRUD no exemplo da tabela users

\n

Vamos criar a tabela e realizar consultas básicas.

\n\n

Criação da tabela

\n
<?php\n$sql = "CREATE TABLE IF NOT EXISTS users (\n    id SERIAL PRIMARY KEY,\n    name VARCHAR(100) NOT NULL,\n    email VARCHAR(150) UNIQUE NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n)";\n$pdo->exec($sql);\necho "Tabela criada.";\n?>
\n\n

Inserção de dados (CREATE)

\n
<?php\n$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");\n$stmt->execute(['name' => 'Ivan Petrov', 'email' => 'ivan@example.com']);\necho "Usuário adicionado.";\n?>
\n\n

Leitura de dados (READ)

\n
<?php\n$stmt = $pdo->query("SELECT * FROM users");\nwhile ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {\n    echo "ID: {$row['id']}, Nome: {$row['name']}, Email: {$row['email']}<br>";\n}\n?>
\n\n

Atualização (UPDATE) e exclusão (DELETE)

\n
<?php\n// Atualização\n$stmt = $pdo->prepare("UPDATE users SET name = :name WHERE id = :id");\n$stmt->execute(['name' => 'Pyotr Sidorov', 'id' => 1]);\n\n// Exclusão\n$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");\n$stmt->execute(['id' => 2]);\n?>
\n\n

Dica: Sempre use consultas preparadas (prepare) para proteção contra injeção de SQL.

\n\n

3. MongoDB e PHP: flexibilidade sem esquema

\n\n

MongoDB armazena dados na forma de documentos BSON (JSON binário).

Blogs

Book Recommendations