Introduction : Pourquoi un développeur PHP doit savoir travailler avec différentes bases de données
Le développement web moderne passe rarement sans interaction avec des bases de données. PHP, en tant que l'un des langages serveur les plus populaires, offre des outils flexibles pour travailler avec des systèmes relationnels (SQL) ainsi qu'avec des systèmes orientés documents (NoSQL). Dans cet article, nous allons détailler la connexion et l'exécution des opérations de base avec deux bases de données populaires : PostgreSQL et MongoDB. Vous apprendrez à configurer la connexion, à exécuter des requêtes et à traiter les résultats en utilisant les pratiques modernes de PHP.
1. Travailler avec PostgreSQL en PHP via PDO
PostgreSQL est un puissant SGBD objet-relationnel. Pour travailler avec lui en PHP, il est recommandé d'utiliser l'extension PDO (PHP Data Objects), qui fournit une interface unifiée pour différentes bases de données et améliore la sécurité grâce aux requêtes préparées.
1.1 Connexion à la base de données
Pour commencer, assurez-vous que l'extension pdo_pgsql est activée dans votre php.ini. Exemple de connexion :
<?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 "Connexion établie avec succès";} catch (PDOException $e) { die("Erreur de connexion : " . $e->getMessage());}?>1.2 Exécution des requêtes (CRUD)
Examinons les opérations de base avec l'exemple de la table users.
Création d'un enregistrement (INSERT) :
<?php$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";$stmt = $pdo->prepare($sql);$stmt->execute([':name' => 'Иван Иванов', ':email' => 'ivan@example.com']);echo "Utilisateur ajouté, ID : " . $pdo->lastInsertId();?>Lecture des données (SELECT) :
<?php$stmt = $pdo->query("SELECT id, name, email FROM users");while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "ID : {$row['id']}, Nom : {$row['name']}, Email : {$row['email']}<br>";}?>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' => 'newemail@example.com', ':id' => 1]);
// Suppression$sql = "DELETE FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);?>2. Travailler avec MongoDB en PHP
MongoDB est une base de données NoSQL de premier plan, stockant les données sous forme de documents de type JSON. Pour travailler avec elle en PHP, on utilise l'extension officielle mongodb et la bibliothèque MongoDB PHP Library (installée via Composer).
2.1 Installation et connexion
Installez la bibliothèque via Composer :
composer require mongodb/mongodbExemple de connexion à un serveur MongoDB local :
<?phprequire 'vendor/autoload.php';
$client = new MongoDB\\Client("mongodb://localhost:27017");$database = $client->selectDatabase('my_database');$collection = $database->selectCollection('users');echo "Connexion à MongoDB établie";?>2.3 Opérations CRUD avec les documents
Insertion d'un document (INSERT) :
<?php$insertResult = $collection->insertOne([ 'name' => 'Мария Петрова', 'email' => 'maria@example.com', 'age' => 28]);echo "Document ajouté avec l'ID : " . $insertResult->getInsertedId();?>Recherche de documents (SELECT) :
<?php$cursor = $collection->find(['age' => ['$gte' => 25]]);