For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/databases/postgresql-connect-php.md.

Se connecter depuis PHP au service Public Cloud Databases pour PostgreSQL

Voir en Markdown

Connectez-vous à votre service Public Cloud Databases pour PostgreSQL en utilisant le langage de programmation PHP

Objectif

Public Cloud Databases vous permet de vous concentrer sur la création et le déploiement de vos applications cloud, pendant qu'OVHcloud prend en charge l'infrastructure de base de données et son maintien en conditions opérationnelles.

Ce guide explique comment se connecter à une instance de base de données PostgreSQL avec l'un des langages de programmation les plus utilisés au monde : PHP.

Vous pouvez trouver un exemple sur le dépôt d'exemples GitHub.

Prérequis

  • Accès à l' ;
  • Un projet Public Cloud dans votre compte OVHcloud ;
  • Une base de données PostgreSQL active sur votre service Public Cloud Databases OVHcloud (vous pouvez utiliser ce guide pour remplir ce prérequis)
  • Configurer votre instance PostgreSQL pour accepter les connexions entrantes
  • Un environnement PHP avec une version stable et une connectivité réseau publique (Internet). Ce guide a été réalisé avec PHP 8.0.8.

Concept

Une instance PostgreSQL peut être gérée de plusieurs façons. L'une des plus simples, mais aussi des plus puissantes, consiste à utiliser une interface en ligne de commande (CLI), comme le montre notre guide : Se connecter à PostgreSQL avec la CLI.

Une autre méthode consiste à interagir directement à l'aide de langages de programmation, tels que PHP. PHP est utilisé dans près de 80 % des sites web dans le monde, comme Facebook, Wikipedia ou WordPress. PostgreSQL fournit des drivers PHP, nous permettant de connecter et de gérer une instance PostgreSQL depuis le code.

Pour ce faire, nous devrons configurer notre environnement PHP avec les drivers PostgreSQL, puis configurer nos instances Public Cloud Databases pour PostgreSQL pour accepter les connexions entrantes, et enfin coder en PHP pour réaliser quelques actions d'exemple.

En pratique

Configurer votre environnement PHP

Pour interagir avec votre instance PostgreSQL en PHP, votre environnement de développement doit être configuré avec :

  • Une version compatible de PHP ;
  • L'extension PHP PostgreSQL et PDO ;

Veuillez suivre la documentation officielle PostgreSQL pour obtenir les informations les plus récentes.

Si vous pouvez modifier votre environnement PHP vous-même, installez les extensions et librairies comme indiqué dans la page de documentation citée ci-dessus.

À l'inverse, si vous bénéficiez d'une solution d'hébergement web managée, comme les offres OVHcloud Web Hosting, vous devez activer la bonne version de PHP sur votre offre d'hébergement web. Vous pouvez trouver ici un guide sur la modification de votre version PHP pour OVHcloud Web Hosting.

Nous sommes maintenant prêts à apprendre comment nous connecter à notre instance PostgreSQL.

Se connecter avec PHP

Avec pg_connect

<?php
$host = "postgresql-11xxxx20-o2xxxx53.database.cloud.ovh.net";
$user = "avnadmin";
$password = "K93xxxxxxxxxxxxxaBp";
$dbname = "defaultdb";
$port = "20184";

$dbconn = pg_connect("host=$host dbname=$dbname user=$user password=$password port=$port sslmode=require")
    or die('Could not connect: ' . pg_last_error());

$stat = pg_connection_status($dbconn);
if($stat === PGSQL_CONNECTION_OK){
  echo 'Connection OK';
} else {
  echo 'An error occurred';
}
?>

Si vous êtes connecté, le résultat devrait ressembler à ceci :

Connection OK

Avec PDO

<?php
$host = "postgresql-11xxxx20-o2xxxx53.database.cloud.ovh.net";
$user = "avnadmin";
$password = "K93xxxxxxxxxxxxxaBp";
$dbname = "defaultdb";
$port = "20184";

$conn = new PDO("pgsql:host=$host; port=$port; dbname=$dbname; sslmode=require; user=$user; password=$password");
var_dump($conn->query("select datname from pg_database;")->fetchAll());
?>

Si vous êtes connecté, le résultat devrait ressembler à ceci :

array(4) {
  [0]=>
  array(2) {
    ["datname"]=>
    string(6) "_aiven"
    [0]=>
    string(6) "_aiven"
  }
  [1]=>
  array(2) {
    ["datname"]=>
    string(9) "template1"
    [0]=>
    string(9) "template1"
  }
  [2]=>
  array(2) {
    ["datname"]=>
    string(9) "template0"
    [0]=>
    string(9) "template0"
  }
  [3]=>
  array(2) {
    ["datname"]=>
    string(9) "defaultdb"
    [0]=>
    string(9) "defaultdb"
  }
}

Aller plus loin

Visitez notre chaîne Discord dédiée : https://discord.gg/ovhcloud. Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe nos services de bases de données.

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Rejoignez notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?