Introducción: Por qué un desarrollador PHP debe saber trabajar con diferentes BD
El desarrollo web moderno rara vez prescinde de la interacción con bases de datos. PHP, como uno de los lenguajes de servidor más populares, ofrece herramientas flexibles para trabajar tanto con sistemas relacionales (SQL) como con sistemas orientados a documentos (NoSQL). En este artículo, analizaremos en detalle la conexión y ejecución de operaciones básicas con dos bases de datos populares: PostgreSQL y MongoDB. Aprenderá cómo configurar la conexión, ejecutar consultas y procesar resultados utilizando prácticas modernas de PHP.
1. Trabajo con PostgreSQL en PHP mediante PDO
PostgreSQL es un potente sistema de gestión de bases de datos objeto-relacional. Para trabajar con él en PHP, se recomienda utilizar la extensión PDO (PHP Data Objects), que proporciona una interfaz unificada para diferentes bases de datos y mejora la seguridad mediante consultas preparadas.
1.1 Conexión a la base de datos
Para empezar, asegúrese de que la extensión pdo_pgsql esté habilitada en su php.ini. Ejemplo de conexión:
<?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 "Conexión establecida exitosamente";} catch (PDOException $e) { die("Error de conexión: " . $e->getMessage());}?>1.2 Ejecución de consultas (CRUD)
Veamos las operaciones básicas con el ejemplo de la tabla users.
Creación de registro (INSERT):
<?php$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";$stmt = $pdo->prepare($sql);$stmt->execute([':name' => 'Iván Ivanov', ':email' => 'ivan@example.com']);echo "Usuario agregado, ID: " . $pdo->lastInsertId();?>Lectura de datos (SELECT):
<?php$stmt = $pdo->query("SELECT id, name, email FROM users");while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "ID: {$row['id']}, Nombre: {$row['name']}, Email: {$row['email']}<br>";}?>Actualización (UPDATE) y eliminación (DELETE):
<?php// Actualización$sql = "UPDATE users SET email = :email WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':email' => 'newemail@example.com', ':id' => 1]);
// Eliminación$sql = "DELETE FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);?>2. Trabajo con MongoDB en PHP
MongoDB es la principal base de datos NoSQL, que almacena datos en forma de documentos similares a JSON. Para trabajar con ella en PHP, se utiliza la extensión oficial mongodb y la biblioteca MongoDB PHP Library (se instala mediante Composer).
2.1 Instalación y conexión
Instale la biblioteca mediante Composer:
composer require mongodb/mongodbEjemplo de conexión a un servidor local de MongoDB:
<?phprequire 'vendor/autoload.php';
$client = new MongoDB\\Client("mongodb://localhost:27017");$database = $client->selectDatabase('my_database');$collection = $database->selectCollection('users');echo "Conexión a MongoDB establecida";?>2.2 Operaciones CRUD con documentos
Inserción de documento (INSERT):
<?php$insertResult = $collection->insertOne([ 'name' => 'María Petrova', 'email' => 'maria@example.com', 'age' => 28]);echo "Documento agregado con ID: " . $insertResult->getInsertedId();?>Búsqueda de documentos (SELECT):
<?php$cursor = $collection->find(['age' => ['$gte' => 25]]);