Travailler avec les bases de données en PHP : PostgreSQL et MongoDB

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec les bases de données en PHP : PostgreSQL et MongoDB



Le développement web moderne en PHP va rarement sans interagir avec des bases de données. Le choix entre un système relationnel (PostgreSQL) et un système orienté documents (MongoDB) dépend de la structure des données, des exigences de performance et de l'évolutivité du projet. Dans cet article, nous verrons comment se connecter aux deux SGBD, effectuer des opérations de base et à quoi faire attention lors du choix.



1. Connexion à PostgreSQL via PDO



PostgreSQL est un SGBD relationnel puissant prenant en charge les transactions ACID, les requêtes complexes et les types de données extensibles. En PHP, il est recommandé d'utiliser l'extension PDO (PHP Data Objects) pour travailler avec lui, ce qui fournit une interface unifiée pour différentes bases de données.



Tout d'abord, assurez-vous que les pilotes pdo_pgsql et pgsql sont installés sur votre système. Vous pouvez le vérifier via phpinfo().



Exemple de connexion et d'insertion de données



<?php$host = 'localhost';$dbname = 'my_database';$user = 'my_user';$password = 'my_password';

try { // Créer un DSN (Data Source Name) $dsn = "pgsql:host=$host;dbname=$dbname"; // Se connecter $pdo = new PDO($dsn, $user, $password, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ]); echo "Connexion à PostgreSQL établie avec succès !<br>"; // Insertion de données à l'aide de déclarations préparées $sql = "INSERT INTO users (name, email, age) VALUES (:name, :email, :age)"; $stmt = $pdo->prepare($sql); $stmt->execute([ ':name' => 'Ivan Petrov', ':email' => 'ivan@example.com', ':age' => 28 ]); echo "Utilisateur ajouté. ID : " . $pdo->lastInsertId(); } catch (PDOException $e) { echo "Erreur de connexion : " . $e->getMessage(); die();}?>


L'utilisation de déclarations préparées protège contre les injections SQL et améliore les performances pour les requêtes similaires répétées.



Récupération de données avec filtrage



<?php$minAge = 25;$search = "SELECT id, name, email, age FROM users WHERE age > :minAge ORDER BY age DESC";$stmt = $pdo->prepare($search);$stmt->execute([':minAge' => $minAge]);

$users = $stmt->fetchAll();

foreach ($users as $user) { echo "{$user['name']} ({$user['age']} ans) - {$user['email']}<br>";}?>


PostgreSQL prend en charge les JOIN complexes, les sous-requêtes, les fonctions de fenêtrage et la recherche en texte intégral — ce qui en fait un choix idéal pour les projets ayant des exigences strictes en matière d'intégrité des données.



2. Connexion à MongoDB via le pilote officiel



MongoDB est une base de données NoSQL qui stocke les données sous forme de documents (objets BSON similaires au JSON). Il est bien adapté aux projets avec des schémas flexibles, un prototypage rapide et une mise à l'échelle horizontale.



Pour travailler avec MongoDB en PHP, l'extension mongodb et la bibliothèque mongodb/mongodb (installée via Composer) sont utilisées.



Installation du pilote



# Via Composer dans la racine du projetcomposer require mongodb/mongodb


Exemple de connexion et d'insertion de document



<?phprequire_once 'vendor/autoload.php';

use MongoDB\\Client;use MongoDB\\Driver\\Exception\\Exception;

try { // Se connecter au serveur local $client = new Client("mongodb://localhost:27017"); // Sélectionner la base de données et la collection $collection = $client->my_database->users; // Insérer un seul document $insertResult = $collection->insertOne([ 'name' => 'Anna Smirnova', 'email' => 'anna@example.com', 'age' => 32, 'interests' => ['programming', 'reading', 'traveling'],

Blogs

Book Recommendations