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";
?>
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";
?>

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);
  }
?>

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_error pour 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];
?>

8. À retenir

  • Connexion via mysqli en 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

  1. Créer une base de données librairie dans phpMyAdmin
  2. Écrire un script PHP qui s'y connecte
  3. Afficher un message personnalisé en cas d'échec ou de réussite
  4. Créer un fichier connexion.php réutilisable
  5. Tester la connexion avec une requête SELECT NOW()