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

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

Introduction : pourquoi PHP et les bases de données sont une force

\n\n

Tout site web ou application moderne n'est pas simplement un ensemble de pages, mais un système dynamique qui stocke et traite des données. PHP, en tant que l'un des langages les plus populaires pour le développement web, offre des outils puissants pour travailler avec les bases de données. Dans cet article, nous allons examiner deux systèmes de gestion de bases de données (SGBD) clés : le relationnel PostgreSQL et l'orienté documents MongoDB.

\n\n

Pour un débutant, le choix entre eux peut sembler difficile, mais en réalité chacun résout ses propres problèmes. PostgreSQL est une norme SQL fiable pour les données structurées, tandis que MongoDB est un système NoSQL flexible pour le prototypage rapide et le travail avec des documents de type JSON. Nous allons montrer comment se connecter aux deux depuis PHP, effectuer des opérations de base (CRUD) et donner des conseils pratiques.

\n\n

1. Préparation de l'environnement : ce qu'il faut installer

\n\n

Avant d'écrire du code, assurez-vous d'avoir installé les extensions PHP nécessaires. Pour travailler avec PostgreSQL, l'extension pdo_pgsql est requise, pour MongoDB — mongodb (via PECL ou composer).

\n\n

Installation des extensions

\n
    \n
  • PostgreSQL : décommentez la ligne extension=pdo_pgsql dans php.ini ou installez via le gestionnaire de paquets (par exemple, sudo apt install php-pgsql).
  • \n
  • MongoDB : utilisez Composer : composer require mongodb/mongodb — cela installera la bibliothèque officielle.
  • \n
\n\n

Après l'installation, vérifiez que les extensions sont actives en exécutant php -m | grep -i pgsql et php -m | grep -i mongodb.

\n\n

2. PostgreSQL et PHP : fiabilité et SQL

\n\n

PostgreSQL est un SGBD relationnel puissant avec prise en charge des transactions ACID, des requêtes complexes et des champs JSON. Pour travailler avec lui en PHP, il est plus pratique d'utiliser PDO (PHP Data Objects) — une interface universelle.

\n\n

Connexion à PostgreSQL

\n

Créez un fichier 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 "Connexion à PostgreSQL réussie !";\n} catch (PDOException $e) {\n    die("Erreur de connexion : " . $e->getMessage());\n}\n?>
\n\n

Opérations CRUD sur l'exemple de la table users

\n

Créons une table et effectuons des requêtes de base.

\n\n

Création de la table

\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 "Table créée.";\n?>
\n\n

Insertion de données (CREATE)

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

Lecture de données (READ)

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

Mise à jour (UPDATE) et suppression (DELETE)

\n
<?php\n// Mise à jour\n$stmt = $pdo->prepare("UPDATE users SET name = :name WHERE id = :id");\n$stmt->execute(['name' => 'Pierre Sidorov', 'id' => 1]);\n\n// Suppression\n$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");\n$stmt->execute(['id' => 2]);\n?>
\n\n

Conseil : Utilisez toujours des requêtes préparées (prepare) pour vous protéger contre les injections SQL.

\n\n

3. MongoDB et PHP : flexibilité sans schéma

\n\n

MongoDB stocke les données sous forme de documents BSON (JSON binaire).

Blogs

Book Recommendations