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
|