Trabajo con bases de datos en PHP: PostgreSQL y MongoDB para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: por qué PHP y las bases de datos son una potencia

\n\n

Cualquier sitio web o aplicación moderna no es solo un conjunto de páginas, sino un sistema dinámico que almacena y procesa datos. PHP, como uno de los lenguajes más populares para el desarrollo web, proporciona potentes herramientas para trabajar con bases de datos. En este artículo, analizaremos dos sistemas clave de gestión de bases de datos (SGBD): el relacional PostgreSQL y el orientado a documentos MongoDB.

\n\n

Para un principiante, la elección entre ellos puede parecer complicada, pero en realidad cada uno resuelve sus propias tareas. PostgreSQL es un estándar SQL confiable para datos estructurados, mientras que MongoDB es un sistema NoSQL flexible para prototipado rápido y trabajo con documentos similares a JSON. Mostraremos cómo conectarse a ambos desde PHP, realizar operaciones básicas (CRUD) y brindaremos consejos prácticos.

\n\n

1. Preparación del entorno: qué instalar

\n\n

Antes de escribir código, asegúrese de tener instaladas las extensiones PHP necesarias. Para trabajar con PostgreSQL se requiere la extensión pdo_pgsql, para MongoDB — mongodb (a través de PECL o composer).

\n\n

Instalación de extensiones

\n
    \n
  • PostgreSQL: descomente la línea extension=pdo_pgsql en php.ini o instálela mediante el gestor de paquetes (por ejemplo, sudo apt install php-pgsql).
  • \n
  • MongoDB: use Composer: composer require mongodb/mongodb — esto instalará la biblioteca oficial.
  • \n
\n\n

Después de la instalación, verifique que las extensiones estén activas ejecutando php -m | grep -i pgsql y php -m | grep -i mongodb.

\n\n

2. PostgreSQL y PHP: confiabilidad y SQL

\n\n

PostgreSQL es un potente SGBD relacional con soporte para transacciones ACID, consultas complejas y campos JSON. Para trabajar con él en PHP, lo más conveniente es usar PDO (PHP Data Objects) — una interfaz universal.

\n\n

Conexión a PostgreSQL

\n

Cree un archivo 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 "¡Conexión a PostgreSQL exitosa!";\n} catch (PDOException $e) {\n    die("Error de conexión: " . $e->getMessage());\n}\n?>
\n\n

Operaciones CRUD con el ejemplo de la tabla users

\n

Crearemos la tabla y realizaremos consultas básicas.

\n\n

Creación de la tabla

\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 "Tabla creada.";\n?>
\n\n

Inserción de datos (CREATE)

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

Lectura de datos (READ)

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

Actualización (UPDATE) y eliminación (DELETE)

\n
<?php\n// Actualización\n$stmt = $pdo->prepare("UPDATE users SET name = :name WHERE id = :id");\n$stmt->execute(['name' => 'Pedro Sidorov', 'id' => 1]);\n\n// Eliminación\n$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");\n$stmt->execute(['id' => 2]);\n?>
\n\n

Consejo: Use siempre consultas preparadas (prepare) para protegerse contra inyecciones SQL.

\n\n

3. MongoDB y PHP: flexibilidad sin esquema

\n\n

MongoDB almacena datos en forma de documentos BSON (JSON binario).

Blogs

Book Recommendations