PHP comment se connecter à une SGBD avec un PDO?

lapeyre
Ecosystèmes des langages de programmation
2 min readMay 22, 2017

PHP comment se connecter à une SGBD avec un PDO?

Créé en 1994 par Rasmus Lerdorf, le langage PHP avait à l’origine pour but de permettre à des visiteurs de consulter leur curriculum vitae en ligne, d’où le nom PHP : Personal Home Page. Aujourd’hui, avec la sortie de la version 7.1 PHP est l’un des langages les plus utilisés pour faire des sites dynamiques. C’est à dire, qu’il est utilisé pour récupérer des données d’une base de données et les afficher dans une page HTML. Concrètement cela permet de faire un affichage personnalisé pour chaque utilisateur.

PHP est donc un langage de programmation backend utilisé pour la programmation Web côté serveur. Cependant il a fallu attendre 1996 pour que Ledrdorf intègre des supports pour les bases de données.

Cette innovation fut le véritable un tremplin de PHP puisque deux ans plus tard l’en tête PHP était présente dans 1% des domaines internet [1].

Qu’est-ce qu’un PDO?

Avançons dans le temps jusqu’en 2005 avec PHP 5.1 et la création du module PDO : Php Data Object, qui a permis un autre bon dans l’accès aux bases de données.

Le module PDO fournit une interface permettant l’accès à une base de données. Par exemple la classe PDO::__construct contient les pilotes qui permettent de se connecter à une dizaine base de données différentes (MySQL, Firebird, Informix, …) en changeant seulement les arguments du constructeur.

Comment fonctionne PDO::__construct ?

public PDO::__construct ( string $dsn [, string $username [, string $password [, array $options]]] )’[2]

La chaine de caractère dsn est spécifique à chacune des SGBD et contient les informations nécessaire pour se connecter à la base de données.

Ainsi pour se connecter à Mysql on obtient le code suivant :

<?php
$dbh = new PDO(‘mysql:host=localhost;dbname=test’, $user, $pass);
?>’’’

avec $user et $pass des variables déjà instanciées.

L’avantage de la classe PDO::__construct est qu’elle permet de se connecter à toute une série de bases de données sans avoir besoin de charger les modules des fonctions de connexions spécifiques à chaque base de données. Il suffit de changer une chaîne de caractères.

Elle permet aussi d’uniformiser le retour des connexions. En effet si la connexion réussi alors un objet PDO est renvoyé. En cas d’échec le constructeur émet l’exception PDOException.

Finalement quelque soit la base de données utilisée par le programmeur, le code reste pratiquement le même et donc, si une entreprise décidait de migrer sur un autre système de base de données, les modifications à apporter seraient minimes. C’est l’une des forces de PDO.

De nos jours PHP est toujours l’un des langages les plus utilisé dans la programmation web côté serveur. Néanmoins avec l’arrivé de nombreuses Framework tel que Django qui intègrent directement des architectures logicielles tel que MVC, ce dernier n’est plus aussi attirant pour les nouveaux développeurs et risque de se faire distancer.

Source :

[1] PHP, PDO::__ Constructeur [en ligne]. Php Documentation, 24/04/2014. Disponible sur : <http://php.net/manual/fr/pdo.construct.php> (consulté le 23/02/2017)

[2] PHP, Histoire PHP [en ligne]. Php Documentation. Disponible sur : <http://php.net/manual/fr/history.php.php> (consulté le 23/02/2017)

[3]Wikipédia, PHP Data Object [en ligne] 19/01/2017. Disponible sur : <https://fr.wikipedia.org/wiki/PHP_Data_Objects#Pilotes_disponibles> (consulté le 23/02/2017)

--

--