TUTORIELS 
PHP et les "autres" bases de données (1) : PostgreSQL

Page 1 | 2

Parce qu'il n'y a pas que PHP/MySQL, le JDNetDev commence ici une série d'articles dédiés à ces SGBD alternatifs qui ne déméritent pas face au champion MySQL.
 (25 septembre 2003)
 

Les équivalences MySQL - PgSQL dans PHP
Le but de cet article est non seulement de présenter PgSQL, mais aussi d'aider ceux venant de MySQL à faire la transition vers PgSQL. Voici une table des équivalences des principales fonctions PHP de gestion de base de données :

Fonctions équivalentes
MySQL
Description
Equivalent PostgreSQL
mysql_create_db()
mysql_drop_db()
Création/destruction d'une base de données
Aucun : se fait par l'intermédiaire de requêtes SQL.
mysql_query()
mysql_db_query()
Lance une requête
pg_query()
pg_sendquery()
mysql_fetch_row()
mysql_fetch_array()
mysql_fetch_object()
Récupération des résultats d'un requête
pg_fetch_row()
pg_fetch_array()
pg_fetch_object()
mysql_error()
mysql_errno()
Gestion des erreurs de requête
pg_last_error()
 
mysql_connect()
mysql_pconnect()
Lancement d'une connexion à la base
pg_connect()
pg_pconnect()
mysql_insert_id()
Renvoi l'identifiant de la dernière requête
pg_last_oid()
mysql_num_rows()
mysql_num_fields()
Renvoi le nombre de ligne ou de champ d'un résultat
pg_num_rows()
pg_num_fields()

A priori, donc, la seule différence tient dans la préfixe "pg_", qui remplace "mysql_". Ce n'est pas toujours si simple, mais pour commencer cela "suffit". Au fur et à mesure de votre découverte de PHP/PostgreSQL, vous découvrirez les subtilités cette association..
Pour faciliter la vie des développeurs, PgSQL dispose de sa propre "version" de phpMyAdmin, logiquement appelée phpPgAdmin.

Application
Quelques exemples d'utilisation de PgSQL, en manipulation directe et avec PHP:

CREATE TABLE lapins (id SERIAL, nom VARCHAR(255), description TEST, age INT);
INSERT INTO lapins VALUES (NEXTVAL('lapins_id_seq'), 'Peter Rabbit', 'Petit lapin blanc', '48');
SELECT nom,age FROM lapins ORDER BY age;

L'intégration au code PHP se fait très simplement dès que l'on connaît la syntaxe PgSQL : il suffit de suivre le même schéma que pour MySQL :

<?php
  $db = pg_connect("host=localhost port=5432 dbname=DATABASENAME user=USERNAME password=PASSWORD");
  $req = "SELECT * FROM lapins";
  $resultat = pg_query($db, $req);

  if (!$resultat)
    {
    ?><?="Erreur de requête SQL";?><?
    exit;
    }

  $row = pg_fetch_row ($resultat,0);
  ?><?="Num: $row[0]<br />" . "Nom: $row[1]<br />" .
"Description: $row[2]<br />" . "Age: $row[3]<hr />";?><?

  pg_close($db);
?>

Se lancer
A la différence de PHP/MySQL avec EasyPHP et tant d'autres, le couple PHP/PostgreSQL ne disposait pas (à notre connaissance) de ses propres "packs" qui vous permettent d'être prêt à coder en un rien de temps. Le meilleur conseil que nous pouvions alors vous donner était de passer par l'installateur Cygwin, qui prendra en charge nombre d'installation par défaut, auxquelles il faudra rajouter Apache, PHP et PostgreSQL. Cet article n'étant pas dédié à Cygwin et à ce qu'il installe, nous ne pouvons que vous recommander de lire attentivement sa documentation.
Aujourd'hui, grâce à Stéphane Mariel, auteur du livre "Services Web avec PostgreSQL et XML", il existe un tel installateur "clé en main", que nous vous recommandons.

Page 1 | 2

 
[ Xavier Borderie JDNet
 
Accueil | Haut de page