Connexion à la base MySQL

Afin de dynamiser un site web en offrant une interactivité avec l’internaute, des pages actives qui changent en fonction d’une recherche d’un utilisateur, ou d’un forum nécessite la mise en place d’une base de données pour stocker les données. Voici un petit guide pour se connecter à une base MySQL en php.

Afin de rendre un site dynamique, la méthode la plus simple est d’utiliser du PHP pour générer sa page html avec une base de données qui servira à stocker les informations. J’utilisera ici une base MySQL.

Pourquoi utiliser le PDO ?

La philosophie de PDO c’est d’éviter de changer le nom des fonctions, la syntaxe… lorsqu’on change de SGBD : seule la configuration de la connexion doit être changée.
De plus PDO encapsule de manière native, et donc codée en C (i.e toujours plus efficace qu’un code PHP interprété) la gestion des outils les plus répendues : requêtes préparées, transactions, requetes plus standard…
Enfin PDO est utilisé avec les nouveaux outils, notamment mysqli qui supporte mysql 5.0 de manière plus optimisée que l’extension mysql (Discussion ICI).

Il permet aussi une sécurisation des données envoyées dans la requête (donc dans votre base).

Se connecter à la base de données

Pour se connecter à la base (en php) :

$connection="mysql:host=localhost;dbname=ma_base";
  • On indique à PDO que l’on va utiliser une base mysql.
  • localhost représente l’adresse de votre base de donnée, elle peut être localhost, une adresse ip ou une adresse internet
  • ma_base est le nom de votre base

Utilisation du codage de caractère :

$Param= array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");

ou (celle-ci est à placer après que l’instance $pdo soit ouverte

$pdo->query("SET NAMES 'utf8'");

A noter que si le codage de votre page web est correctement fait et que votre base a été correctement créé, celle-ci n’est pas utile, mais qui peut le plus, peut le moins.

Ouverture de l’instance de connexion à la base :

$pdo = new PDO($connection, 'Utilisateur', 'Mot de passe', $Param);

On retrouve nos $connection et $Param. utilisateur et Mot de passe sont vos identifiants pour se connecter à votre base.

Gestion des erreurs en PDO

Nous pouvons gérer les erreurs :

try {
     $Connection = 'mysql:host=localhost;dbname=ma_base'; 
     $Param= array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"); 
     $pdo = new PDO($Connection , 'Utilisateur', 'Mot de passe', $Param); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e) {
     $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
     die($msg);
}

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  permet de dire que l’on gère les erreurs sur la connexion $pdo.

La dernière partie est la mise en forme des informations suites à une erreur.

Fermer sa connexion à la base de données

Les débats sont houleux sur comment fermer sa connexion, il y a ceux qui parle du closeCursors(); , mais ceci ferme seulement la requête, pour la fermeture de la connexion :

$pdo=null;

Pour être sur, il suffit de lancer une nouvelle requete, celle-ci ne se fera pas.

Sources :

Laisser un commentaire