Introducción al trabajo con bases de datos en PHP
El desarrollo web moderno es impensable sin una gestión eficiente de datos. PHP, como uno de los lenguajes de servidor más populares, proporciona a los desarrolladores herramientas potentes para interactuar con varios sistemas de gestión de bases de datos (SGBD). En este artículo, analizaremos dos SGBD fundamentalmente diferentes pero igualmente demandados: la relacional PostgreSQL y la orientada a documentos MongoDB.
Para los desarrolladores principiantes, la elección entre SQL y NoSQL puede parecer complicada. Analizaremos las diferencias clave, aprenderemos a conectarnos a ambas bases de datos desde PHP y realizaremos operaciones CRUD básicas (Create, Read, Update, Delete). Al final del artículo, podrá elegir de forma independiente el SGBD adecuado para su proyecto y escribir código funcional para interactuar con él.
1. PostgreSQL: trabajo con datos relacionales a través de PDO
PostgreSQL es un potente SGBD objeto-relacional de código abierto. Soporta consultas complejas, transacciones y tipos de datos avanzados. Para trabajar con PostgreSQL en PHP, se recomienda utilizar la extensión PDO (PHP Data Objects), que proporciona una interfaz unificada para trabajar con diferentes bases de datos.
Conexión a PostgreSQL a través de PDO
El primer paso es instalar el controlador pdo_pgsql. Asegúrese de que esté activado en su php.ini. Después de eso, puede crear la conexión:
<?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 "¡Conexión a PostgreSQL establecida con éxito!";} catch (PDOException $e) { die("Error de conexión: " . $e->getMessage());}?>Operaciones CRUD en PostgreSQL
Consideremos el trabajo con la tabla users, que contiene los campos id, name y email. Todas las consultas se ejecutan a través de declaraciones preparadas (prepared statements) para protegerse contra inyecciones SQL.
Creación de registro (Create):
<?php$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";$stmt = $pdo->prepare($sql);$stmt->execute([':name' => 'Iván Petrov', ':email' => 'ivan@example.com']);echo "Usuario agregado. ID: " . $pdo->lastInsertId();?>Lectura de datos (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 "Nombre: " . $user['name'] . ", Email: " . $user['email'];} else { echo "Usuario no encontrado.";}?>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' => 'new_email@example.com', ':id' => 1]);echo "Filas actualizadas: " . $stmt->rowCount();
// Eliminación$sql = "DELETE FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);echo "Filas eliminadas: " . $stmt->rowCount();?>2. MongoDB: trabajo con documentos a través de MongoDB PHP Library
MongoDB es una base de datos NoSQL que almacena datos en forma de documentos flexibles similares a JSON. Para trabajar con ella en PHP, se utiliza la biblioteca oficial mongodb/mongodb, instalada a través de Composer.
Instalación y conexión a MongoDB
Primero, instale la biblioteca a través de Composer:
composer require mongodb/mongodbDespués de eso, cree una conexión al servidor MongoDB (por defecto funciona en el puerto 27017):