PostgreSQL et PHP

publicité
PostgreSQL et PHP
Accès à la base de données
• Open Source
• Disponible sans frais
• Il faut :
– un serveur : ‘host=?’
– une base de donnée stockée sur le serveur : ‘dbname=?’
– Un login : ‘user=?’
– Un mot de passe : ‘password=?’
• Une méthode de connexion : pg_connect
• Sortie : un identifiant de connexion
• Entrée : une chaîne des quatre informations séparées par une espace
• Récupération de la dernière erreur : die() et pg_last_error()
Interrogation avec PHP
• Une méthode de requête SQL : pg_query()
– entrée : requête SQL sous forme de chaîne de caractère
– Sortie : un pointeur vers la ressource contenant les tuples appelés par la
requête (n tuples de m champs)
• Une méthode de parcours des résultats : pg_fetch_array()
– Entrée :
• une sortie de pg_query()
• Un numéro de ligne entre 0 et n-1(peut être omis en passant ‘null’ à la place)
• Une constante qui définit le type de la variable de stockage d’un tuple (indices
numériques, associatifs ou les deux)
– Sortie : un tableau numérique et/ou associatif
• Numérique (PGSQL_NUM) : valeurs des champs du tuple indicées de 0 à m-1
• Associatif (PGSQL_ASSOC) : valeurs des champs du tuple indicées par le nom
du champs
• Les deux (PGSQL_BOTH)
Fin de requête en PHP
• Libération du résultat:
pg_free_result(pointeur vers la ressource
contenant les tuples)
• Fermeture de la base : pg_close(identifiant de
connexion)
• Exemple de connexion et d’affichage de la
valeur des champs d’une base de données
postgreSQL diapo suivante
Affichage d’un tableau XHTML contenant les
champs des tuples résultats d’une requête SQL
<?php
// connexion
$connexion= pg_connect("host=monServeur dbname=maBase user=moi password=toto") or die('Connexion impossible : ' . pg_last_error());
// interrogation
$requete= 'SELECT * FROM maTable';
$resultat= pg_query(r$equete) or die('Échec requête : ' . pg_last_error());
// Parcours et affichage des résultats en XHTML
echo "<table>\n";
while ($tuple= pg_fetch_array($resultat, null, PGSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($tuple as $champs => $valeur_champs) {
echo "\t<td>$champs : $valeur_champs</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
// libération de la mémoire (optionnel car automatique en fin de script)
pg_free_result($resultat);
// fermeture de la connexion (optionnel car automatique en fin de script)
pg_close($connexion);
?>
Téléchargement