connexion php pdo postgresql

Comment se connecter à une base de données PostgreSQL via PHP PDO ?

La connexion à une base de données PostgreSQL via PHP en utilisant la classe PDO (PHP Data Objects) est nécessaire pour pouvoir exécuter les requêtes tels que la sélection, l’ajout, la modification ou la suppression.

Quels sont les informations requises pour se connecter à une BDD PostgreSQL ?

Pour se connecter à n’importe quel système de gestion de bases de données, PHP fournit un ensemble de fonctions (versions de PHP < 5) ou classes et méthodes (versions de PHP >= 5). Il suffit de fournir cinq informations pour la connexion à ces SGBD et plus particulièrement PostgreSQL qui sont :

  1. Le nom du serveur de la BD PostgreSQL  ou bien son adresse IP tel qu’il a été fourni par l’hébergeur.
  2. Le nom de la BD PostgreSQL.
  3. Le nom de l’utilisateur.
  4. Son mot de passe.
  5. Le port (normalement 5432).

Comment activer le pilote PDO PostgreSQL dans PHP ?

La connexion PostgreSQL PHP PDO nécessite avant tout que la BDD Postgres soit prise en charge dans votre pack d’hébergement.  DE plus et pour pouvoir bénéficier des atouts de la classe PDO, devenue le middleware de base pour se connecter à n’importe quelle base de données, il faut que l’extension PDO-PgSQL soit déjà activée.


Pour le vérifier, il est possible d’utiliser la fonction phpinfo() qui permet d’afficher l’état d’activation et de désactivation des différentes extensions dans votre espace d’hébergement web.

Extension PDO PostgreSQL dans php.ini
Driver PDO PostgreSQL dans php.ini

Pour ce faire (en local), il suffit de décommenter (enlever le point virgule au niveau de « extension=pdopgsql » et « extension=pgsql ») puis redémarrer le serveur web.

A quoi ressemble un script PHP de connexion à une BDD PostgreSQL ?

Avant l’arrivée de la classe PDO PHP, la connexion à PostgreSQL se fait à travers la fonction pg_connect() qui prend en paramètre les mêmes informations citées en haut.connexion bdd postgresql php pdoMais, depuis la version 5 de PHP et l’ajout de la classe PDO, la connexion se fait comme suit :

&lt;?php
    // Eléments nécessaires pour se connecter à une BDD PgSQL en PDO ?
    $serveur_bd = 'localhost'; // ou le nom du serveur distant de la base de données PostgreSQL
    $nom_bd = 'ma_bd';
    $utilisateur_bd = 'root';
    $passe_bd= ''; // Vide en local
    $source_bd = "pgsql:host=$serveur_bd;port=5432;dbname=$nom_bd;user=$utilisateur_bd;password=$passe_bd";
    
    // Tentative de connexion PostgreSQL via PHP PDO
    try{
        $connexion = new PDO($source_bd);
        if($connexion){
            /* Mettre ici les instructions PHP du traitement souhaité */
        }
    }catch (PDOException $e){ // Génération d'une exception PHP PDO PostgreSQL
        echo $e-&gt;getMessage();
    }
?&gt;