PHP

1 h Niveau 10

Installation

L'extension PostgreSQL est activée par défaut dans les dernières versions de PHP 5.3.x. Il est possible de la désactiver en utilisant --without-pgsql à la compilation. Vous pouvez néanmoins utiliser la commande yum pour installer l'interface PHP -PostgreSQL.

yum install php-pgsql

Avant de commencer à utiliser l'interface PHP PostgreSQL, trouvez le fichier pg_hba.conf dans votre répertoire d'installation de PostgreSQL et ajoutez la ligne suivante :

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5

Vous pouvez démarrer/redémarrer le serveur postgres, au cas où il ne serait pas en cours d'exécution, à l'aide de la commande suivante :

[root@host]# service postgresql restart
Stopping postgresql service:                               [  OK  ]
Starting postgresql service:                               [  OK  ]

Les utilisateurs de Windows doivent activer php_pgsql.dll afin d'utiliser cette extension. Cette DLL est incluse dans les distributions Windows dans les dernières versions de PHP 5.3.x.

Pour des instructions d'installation détaillées, veuillez consulter notre tutoriel PHP et son site officiel.

PHP Interface APIs

Voici des routines PHP importantes, qui peuvent répondre à votre besoin de travailler avec la base de données PostgreSQL depuis votre programme PHP. Si vous recherchez une application plus sophistiquée, vous pouvez consulter la documentation officielle de PHP.

API & Description

  • resource pg_connect ( string $connection_string [, int $connect_type ] ) - Ceci ouvre une connexion à une base de données PostgreSQL spécifiée par la chaîne de connexion (connection_string). Si PGSQL_CONNECT_FORCE_NEW est passé comme connect_type, alors une nouvelle connexion est créée en cas de second appel à pg_connect(), même si la connection_string est identique à une connexion existante.
  • bool pg_connection_reset ( resource $connection ) - Cette routine réinitialise la connexion. Elle est utile pour la récupération des erreurs. Elle renvoie TRUE en cas de succès ou FALSE en cas d'échec.
  • int pg_connection_status ( resource $connection ) - Cette routine retourne l'état de la connexion spécifiée. Elle renvoie PGSQL_CONNECTION_OK ou PGSQL_CONNECTION_BAD.
  • string pg_dbname ([ resource $connection ] ) - Cette routine retourne le nom de la base de données que la ressource de connexion PostgreSQL donnée.
  • resource pg_prepare ([ resource $connection ], string $stmtname, string $query ) - Il soumet une demande de création d'une déclaration préparée avec les paramètres donnés et attend l'achèvement.
  • resource pg_execute ([ resource $connection ], string $stmtname, array $params ) - Cette routine envoie une demande d'exécution d'une instruction préparée avec des paramètres donnés et attend le résultat.
  • resource pg_query ([ resource $connection ], string $query ) - Cette routine exécute la requête sur la connexion à la base de données spécifiée.
  • array pg_fetch_row ( resource $result [, int $row ] ) - Cette routine extrait une ligne de données du résultat associé à la ressource de résultat spécifiée.
  • array pg_fetch_all ( resource $result ) - Cette routine renvoie un tableau qui contient toutes les lignes (enregistrements) dans la ressource de résultat.
  • int pg_affected_rows ( resource $result ) - Cette routine renvoie le nombre de lignes affectées par les requêtes INSERT, UPDATE et DELETE.
  • int pg_num_rows ( resource $result ) - Cette routine retourne le nombre de lignes dans une ressource de résultat PostgreSQL, par exemple le nombre de lignes retournées par l'instruction SELECT.
  • bool pg_close ([ resource $connection ] ) - Cette routine ferme la connexion non persistante à une base de données PostgreSQL associée à la ressource de connexion donnée.
  • string pg_last_error ([ resource $connection ] ) - Cette routine renvoie le dernier message d'erreur pour une connexion donnée.
  • string pg_escape_literal ([ resource $connection ], string $data ) - Cette routine échappe un littéral pour l'insérer dans un champ de texte.
  • string pg_escape_string ([ resource $connection ], string $data ) - Cette routine échappe une chaîne de caractères pour l'interrogation de la base de données.

Connection à la base de données

Le code PHP suivant montre comment se connecter à une base de données existante sur une machine locale et finalement un objet de connexion de base de données sera retourné :

<?php
    $host = "host = 127.0.0.1";
    $port = "port = 5432";
    $dbnam = "dbname = testdb";
    $credentials = "user = postgres password=pass123";

    $db = pg_connect("$host $port $dbname $credentials");
    if(!$db) {
        echo "Error : Unable to open database\n";
    } else {
        echo "Opened database successfully\n";
    }
?>

Maintenant, exécutons le programme ci-dessus pour ouvrir notre base de données testdb : si la base de données est ouverte avec succès, le message suivant apparaîtra :

Opened database successfully
logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus