Introduction au travail avec les bases de données en PHP
Le développement web moderne est impensable sans une gestion efficace des données. PHP, en tant que l'un des langages serveur les plus populaires, offre aux développeurs des outils puissants pour interagir avec différents systèmes de gestion de bases de données (SGBD). Dans cet article, nous examinerons deux SGBD fondamentalement différents mais tout aussi demandés : le relationnel PostgreSQL et l'orienté documents MongoDB.
Pour les développeurs débutants, le choix entre SQL et NoSQL peut sembler complexe. Nous analyserons les principales différences, apprendrons à nous connecter aux deux bases de données depuis PHP et à effectuer les opérations CRUD de base (Create, Read, Update, Delete). À la fin de cet article, vous serez en mesure de choisir le SGBD adapté à votre projet et d'écrire un code fonctionnel pour interagir avec lui.
1. PostgreSQL : travailler avec des données relationnelles via PDO
PostgreSQL est un puissant SGBD objet-relationnel open source. Il prend en charge les requêtes complexes, les transactions et les types de données avancés. Pour travailler avec PostgreSQL en PHP, il est recommandé d'utiliser l'extension PDO (PHP Data Objects), qui fournit une interface unifiée pour travailler avec différentes bases de données.
Connexion à PostgreSQL via PDO
La première étape consiste à installer le pilote pdo_pgsql. Assurez-vous qu'il est activé dans votre php.ini. Ensuite, vous pouvez créer une connexion :
<?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 "Connexion à PostgreSQL établie avec succès !";} catch (PDOException $e) { die("Erreur de connexion : " . $e->getMessage());}?>Opérations CRUD dans PostgreSQL
Examinons le travail avec la table users, contenant les champs id, name et email. Toutes les requêtes sont exécutées via des instructions préparées (prepared statements) pour se protéger contre les injections SQL.
Création d'un enregistrement (Create) :
<?php$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";$stmt = $pdo->prepare($sql);$stmt->execute([':name' => 'Ivan Petrov', ':email' => 'ivan@example.com']);echo "Utilisateur ajouté. ID : " . $pdo->lastInsertId();?>Lecture des données (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 "Nom : " . $user['name'] . ", Email : " . $user['email'];} else { echo "Utilisateur non trouvé.";}?>Mise à jour (Update) et suppression (Delete) :
<?php// Mise à jour$sql = "UPDATE users SET email = :email WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':email' => 'new_email@example.com', ':id' => 1]);echo "Lignes mises à jour : " . $stmt->rowCount();
// Suppression$sql = "DELETE FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);echo "Lignes supprimées : " . $stmt->rowCount();?>2. MongoDB : travailler avec des documents via MongoDB PHP Library
MongoDB est une base de données NoSQL qui stocke les données sous forme de documents flexibles de type JSON. Pour travailler avec elle en PHP, on utilise la bibliothèque officielle mongodb/mongodb, installée via Composer.
Installation et connexion à MongoDB
Commencez par installer la bibliothèque via Composer :
composer require mongodb/mongodbEnsuite, créez une connexion au serveur MongoDB (par défaut, il fonctionne sur le port 27017) :