Introduction aux bases de données
Pourquoi une base de données ?
PHP peut générer des pages dynamiques. Mais il a un problème : tout disparaît à chaque requête. Formulaire soumis ? Données perdues. Liste de produits ? Écrites en dur dans le code.
Une base de données résout ce problème. Elle permet de stocker et retrouver des données de façon permanente. Les données survivent aux rechargements de page et aux redémarrages du serveur.
C'est quoi une base de données relationnelle ?
Il existe plusieurs types de bases de données. En PHP, on utilise surtout les bases relationnelles. Les données sont organisées en tables. Pense à un tableau Excel : même idée.
Imagine une table utilisateurs :
+----+------------+-------------------+-----+
| id | nom | email | age |
+----+------------+-------------------+-----+
| 1 | Alice | alice@ex.com | 28 |
| 2 | Bob | bob@ex.com | 34 |
| 3 | Camille | camille@ex.com | 22 |
+----+------------+-------------------+-----+
Chaque ligne = un enregistrement. Par exemple, un utilisateur. Chaque colonne = une propriété. Par exemple, le nom. MySQL stocke tout ça. On interroge avec SQL.
SQL : le langage des bases de données
SQL est le langage pour parler à une base de données. Tu décris ce que tu veux. MySQL s'occupe du reste.
-- Récupérer tous les utilisateurs
SELECT * FROM utilisateurs;
-- Récupérer seulement ceux de plus de 25 ans
SELECT nom, email FROM utilisateurs WHERE age > 25;
-- Ajouter un utilisateur
INSERT INTO utilisateurs (nom, email, age)
VALUES ('David', 'david@ex.com', 31);
MySQL vs les autres
MySQL
Le plus utilisé avec PHP. Gratuit, rapide, bien documenté. Utilisé par Facebook, Twitter (à l'origine), Wikipedia.
mysql.comPostgreSQL
Plus puissant que MySQL, plus strict. Préféré pour les applications complexes. Très utilisé avec Python/Django.
postgresql.orgSQLite
Base de données dans un seul fichier. Parfait pour les petits projets, applications mobiles. Pas besoin de serveur.
sqlite.orgMongoDB
Non-relationnel (NoSQL). Stocke des documents JSON. Populaire avec Node.js. Pas de tables ni de SQL.
mongodb.comComment installer MySQL
Utilise XAMPP (Windows/Mac/Linux) ou MAMP (Mac). Ces outils installent Apache, MySQL et PHP en un clic. Tout ce qu'il faut pour coder en local.
Avec XAMPP :
- Télécharge XAMPP sur apachefriends.org
- Lance l'installateur, installe tout par défaut
- Ouvre le panneau de contrôle XAMPP, démarre Apache et MySQL
- Ouvre phpMyAdmin dans ton navigateur :
http://localhost/phpmyadmin
phpMyAdmin : l'interface graphique de MySQL
phpMyAdmin est une interface web pour gérer MySQL. Pas besoin de taper des commandes. Tu peux :
- Créer des bases de données et des tables
- Voir et modifier les données directement
- Exécuter des requêtes SQL
- Importer/exporter des données
Outil parfait pour débuter. On s'en sert dans les prochaines leçons.
La relation PHP ↔ MySQL
// Schéma de fonctionnement
Navigateur
↓ requête HTTP
PHP (serveur)
↓ requête SQL
MySQL (base de données)
↓ résultat
PHP construit la page HTML
↓ réponse HTML
Navigateur affiche la page
PHP est au milieu. Il reçoit la demande du navigateur. Il interroge MySQL. Il construit le HTML avec les données. Puis renvoie au navigateur.
- Base de données = système de stockage permanent et organisé
- Données organisées en tables (comme un tableau Excel)
- SQL = langage pour interroger et modifier les données
- MySQL = BDD relationnelle la plus utilisée avec PHP
- XAMPP = installer Apache + MySQL + PHP en local en un clic
- phpMyAdmin = interface graphique pour gérer MySQL