Voici un exemple de code pour établir une connexion PDO sécurisé et structuré à une base de données :
Tout d’abord on met les informations de connexion dans un fichier séparé de la connexion elle-même.
On créé un fichier config.php avec ceci:
<?php
$adresseServeur = 'localhost';
$nomBaseDeDonnees = 'nomde_labase';
$nomUtilisateur = 'nomconnexion';
$motDePasse = 'mot2passe!connexion!!';
Tu peux le sécuriser en mettant dans ton fichier .htaccess ceci : (il se trouve à la racine de votre site, s’il n’existe pas, crée le)
<Files "config.php">
Order Allow,Deny
Deny from all
</Files>
Connexion à la base de données avec PDO:
Crée un fichier « connectionPDO.php » par exemple.
Tu peux commencer par inclure le fichier de configuration config.php qui contient les variables pour la connexion à la base de données comme ceci :
include("config.php");
Puis la connexion à la base.
//testons la requete ci dessous
try {
$bdd = new PDO(
'mysql:host='.$adresseServeur.';dbname='.$nomBaseDeDonnees.';charset=utf8mb4',
$nomUtilisateur,
$motDePasse
);
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Cette ligne crée un objet PDO pour se connecter à la base de données. Les détails de connexion (serveur, nom de la base de données, utilisateur, mot de passe) sont passés sous forme de variables.
L’encodage utf8mb4
est recommandé pour supporter les emojis et tous les caractères Unicode mais il n’y a aucune obligation.
Gestion des erreurs PDO :
On défini le mode d’erreur de PDO pour qu’il lève une exception (PDOException
) en cas de problème. C’est une bonne pratique pour détecter et gérer les erreurs de manière contrôlée, il en existe d’autres.
} catch (PDOException $e) {
die('Erreur : ' . $e->getMessage());
}
Nous mettons le « catch » en place pour récupérer les erreurs. La variable « $e » contiendra les informations sur les erreurs.
« Die » mettra fin à l’exécution du code php si une erreur est détectée. Et en même temps, il envoi un message d’erreur, récupéré depuis l’objet « $e » via la méthode « getMessage() » qui appartient à la Class PDOException.
La connexion se fera à chaque requête sur « $bdd » que ce soit pour un « SELECT » ou autres.
Comment exécuter un SELECT sécurisé en PDO ?
Comment exécuter un INSERT INTO sécurisé en PDO ?
Comment exécuter un UPDATE sécurisé en PDO ?