Chapitre 21 : Introduction à MySQL

Découvrez comment utiliser les bases de données avec PHP pour créer des applications web dynamiques et interactives.

1. Introduction aux bases de données

PHP est souvent utilisé avec une base de données, principalement MySQL (ou MariaDB), pour stocker et manipuler des données dynamiquement : utilisateurs, produits, commentaires, etc.

Dans ce chapitre, vous apprendrez à vous connecter à une base de données et à exécuter des requêtes simples avec MySQLi.

2. Connexion à la base de données

Voici comment établir une connexion à MySQL en utilisant l'extension MySQLi en mode orienté objet :

<?php
  $host = "localhost";
  $user = "root";
  $pass = "";
  $dbname = "ma_base";

  $conn = new mysqli($host, $user, $pass, $dbname);

  if ($conn->connect_error) {
    die("Connexion échouée : " . $conn->connect_error);
  }

  echo "Connexion réussie";
?>

3. Créer une table (exécuté une seule fois)

Voici comment créer une table dans votre base de données :

<?php
  $sql = "CREATE TABLE utilisateurs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nom VARCHAR(50),
    email VARCHAR(100)
  )"
;

  if ($conn->query($sql) === TRUE) {
    echo "Table créée";
  } else {
    echo "Erreur : " . $conn->error;
  }
?>

4. Insérer des données

Pour ajouter des données dans une table :

<?php
  $sql = "INSERT INTO utilisateurs (nom, email)
        VALUES ('Ahmed', 'ahmed@example.com')"
;

  if ($conn->query($sql)) {
    echo "Utilisateur ajouté";
  }
?>
Attention : Cette méthode est vulnérable aux injections SQL si les données viennent d'un utilisateur. Nous verrons les requêtes préparées dans le chapitre suivant pour sécuriser cela.

5. Lire les données

Pour récupérer et afficher des données depuis une table :

<?php
  $resultat = $conn->query("SELECT * FROM utilisateurs");

  while ($row = $resultat->fetch_assoc()) {
    echo "Nom : " . $row["nom"] . " - Email : " . $row["email"] . "<br>";
  }
?>
Remarque : La méthode fetch_assoc() retourne chaque ligne sous forme de tableau associatif.

6. Modifier une ligne

Pour mettre à jour des données existantes :

<?php
  $sql = "UPDATE utilisateurs SET nom = 'Sami' WHERE id = 1";
  $conn->query($sql);
?>

7. Supprimer une ligne

Pour supprimer des données :

<?php
  $sql = "DELETE FROM utilisateurs WHERE id = 2";
  $conn->query($sql);
?>

8. Fermer la connexion

Il est important de fermer la connexion lorsque vous avez terminé :

<?php
  $conn->close();
?>

9. À retenir

  • Connexion à MySQL avec new mysqli()
  • Requêtes SQL : SELECT, INSERT, UPDATE, DELETE
  • fetch_assoc() permet de lire ligne par ligne
  • La sécurité (injections) sera renforcée avec des requêtes préparées (chapitre suivant)

10. Exercices proposés

  1. Créer une table produits avec id, nom et prix.
  2. Insérer 2 produits dans la table.
  3. Afficher tous les produits avec une boucle.
  4. Modifier le prix d'un produit via une requête UPDATE.