Chapitre 22 : Connexion à la base
Apprenez à établir une connexion sécurisée entre PHP et MySQL avec l'extension MySQLi, en mode objet ou procédural.
1. Introduction
Pour interagir avec une base de données MySQL, PHP doit d'abord établir une connexion. Cela se fait généralement avec l'extension MySQLi, qui permet une approche procédurale ou orientée objet.
Dans ce chapitre, vous apprendrez à vous connecter à une base MySQL avec sécurité et contrôle d'erreur.
2. Informations de connexion
Pour se connecter à MySQL, vous avez besoin de :
- Hôte : souvent
localhost - Nom d'utilisateur : ex.
root - Mot de passe : vide par défaut en local
- Nom de la base : à créer via phpMyAdmin
3. Connexion avec MySQLi (orienté objet)
Voici la méthode moderne et recommandée :
<?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 à la base";
?>
$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 à la base";
?>
Avantages :
- Approche moderne orientée objet
- Meilleure organisation du code
- Gestion d'erreur plus claire
4. Connexion en mode procédural
Alternative fonctionnelle mais moins structurée :
<?php
$conn = mysqli_connect("localhost", "root", "", "ma_base");
if (!$conn) {
die("Erreur de connexion : " . mysqli_connect_error());
}
echo "Connecté avec succès";
?>
$conn = mysqli_connect("localhost", "root", "", "ma_base");
if (!$conn) {
die("Erreur de connexion : " . mysqli_connect_error());
}
echo "Connecté avec succès";
?>
5. Centraliser la connexion
Créez un fichier dédié à la connexion pour une meilleure organisation :
config/db.php
<?php
$conn = new mysqli("localhost", "root", "", "ma_base");
if ($conn->connect_error) {
die("Erreur DB : " . $conn->connect_error);
}
?>
$conn = new mysqli("localhost", "root", "", "ma_base");
if ($conn->connect_error) {
die("Erreur DB : " . $conn->connect_error);
}
?>
Utilisation dans vos scripts :
<?php include "config/db.php"; ?>
Important : Placez ce fichier en dehors de la racine web pour plus de sécurité.
6. Gestion des erreurs
- Utiliser
connect_errorpour détecter un problème de connexion - Afficher un message clair à l'utilisateur
- Ne jamais afficher les identifiants de connexion en production
- En production, loguer les erreurs plutôt que les afficher
7. Tester la base avec une requête
Pour vérifier la connexion, exécutez une requête simple :
<?php
$result = $conn->query("SELECT NOW()");
$row = $result->fetch_row();
echo "Heure serveur : " . $row[0];
?>
$result = $conn->query("SELECT NOW()");
$row = $result->fetch_row();
echo "Heure serveur : " . $row[0];
?>
8. À retenir
- Connexion via
mysqlien mode objet ou procédural - Contrôle d'erreur avec
connect_error - Centraliser les paramètres dans un fichier dédié
- Prévoir des messages clairs et éviter les fuites d'infos sensibles
- Toujours fermer la connexion après utilisation
9. Exercices proposés
- Créer une base de données
librairiedans phpMyAdmin - Écrire un script PHP qui s'y connecte
- Afficher un message personnalisé en cas d'échec ou de réussite
- Créer un fichier
connexion.phpréutilisable - Tester la connexion avec une requête
SELECT NOW()