Langage de programmation PHP
Chapitre 1. Introduction
Chapitre 2. Variables, opérateurs et expressions
Chapitre 3. Instructions de contrôle
Chapitre 4. Tableaux
Chapitre 5. Entrées/Sorties
Chapitre 6. Réutilisation de code
Chapitre 7. Lecture/écriture de fichiers
Chapitre 8. Fonctions diverses
Chapitre 9. Sérialisation
Chapitre 10. Fonctions orientées réseau
Chapitre 11. Base de données
Chapitre 12. Manipulations d’images
Chapitre 13. Programmation objet : PHP et les classes ( PHP 4/PHP 5)
Chapitre 14. Gestion des Exceptions (PHP 5)
Chapitre 15. Contrôle de sessions
Chapitre 16. PHP - Ajax
Chapitre 17. Webservices & SOAP
Chapitre 18. PHP en chiffre
Chapitre 19. Conclusion
Chapitre 20. Bibliographie
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

Chapitre 11. Base de données

PHP offre un nombre de fonctions impressionnantes permettant aux scripts de récupérer des données à partir de quantité de SGBD différents. En natif, PHP gère les drivers pour accéder aux SGBD PostgreSQL, dBase, mSQL, mySQL, Oracle, FilePro, Informix, Sybase, InterBase ainsi que tous les SGBD supportant les accès via ODBC (Open DataBase Connectivity).
Nous n’allons pas décrire l’ensemble de ces fonctions, mais uniquement celles qui sont nécessaires pour une utilisation “ classique ”.

Nous allons nous baser ici sur une connexion à un SGBD distant de type mySQL avec une interrogation de la base en SQL.

11.1 Ouverture d’une base
Il existe essentiellement deux fonctions permettant l’accès à une base. La première, mysql_connect permet de se connecter au SGBD, la seconde mysql_select permet de sélectionner une base.

Exemple

<?
$bdd= "mabase"; // Base de données
$host= "sql.iutbayonne.univ-pau.fr";
$user= "roose"; // Utilisateur
$pass= "12345";

mysql_connect($host,$user,$pass) or die ("Impossible de se connecter à la base de données");
mysql_select_db($bdd);
?>

L’exemple précédent va permettre de se connecter sur le SGBD mySQL situé à l’adresse sql.iutbayonne.univ-pau.fr, avec une identification personnelle.
Bien évidemment, comme à l’accoutumé, lorsqu’on ouvre quelque chose en informatique, on le referme.
On n’oubliera pas donc de fermer l’accès à la BD lorsque l’on en aura terminé avec elle, avec msql_close( ).

11.2 Requêtes SQL
Une fois la base de données ouverte, il est possible de l’interroger en langage SQL classique. Pour cela, il est nécessaire de lui transmettre la requête à l’aide de la fonction : msql_query dont voici un exemple d’utilisation :

$query = "SELECT num, pays, date, circuit FROM $nomtable "; //$nomtable contient le nom de la table.
$result= mysql_query($query);

Bien qu’ici la requête est mise dans une variable, il est tout à fait possible de l’inclure directement dans la commande mysql_query.

Généralement après chaque requête, on teste si tout c’est bien passé. Pour cela, on appelle la fonction mysql_error qui récupère le dernier message d’erreur retourné par une fonction mySQL.

if (mysql_error()){ // Erreur base de données, sûrement la table qu'il faut créer
print "Erreur dans la base de données : ".mysql_error(); // On concatène et on affiche l’erreur
produite.
exit();
}

11.3 Récupération de données
La fonction mysql_fetch_row( ) retourne un tableau qui représente tous les champs d’une rangée de résultat (un tuple). Chaque appel produit le tuple jusqu’à ce qu’il n’y en ait plus.
Il existe d’autres fonctions pour réaliser cela, mais celle-ci est la plus rapide pour obtenir des résultats à partir d’une requête.

while ($row=mysql_fetch_row($result)) // $result a été obtenu par le msql_query précédent.
{
// récupération des informations
$num = $row[0];
$pays = $row[1];
$date = $row[2];
$circuit = $row[3];

‘’ … ‘’ ;
}

 A noter qu'au lieu d'utiliser les indices 0, 1, ... il est possible de donner le nom du champ ($row['pays']) à la condition d'utiliser mysql_fetch_array() en lieu et place de mysql_fetch_row().

11.4 Autres fonctions
mysql_list_db ( ) retourne un tableau contenant les noms des bases disponibles. C'est le pendant de SHOW DATABASES en SQL.
mysql_list_tables( ) réalise la même chose que précédemment, mais pour les tables. C'est le pendant de SHOW TABLES en SQL.
mysql_num_rows( ) retourne le nombre de lignes d'un résultat obtenu par une requête.

11.5 Utilisation d’ODBC
Afin de communiquer avec divers SGBD, un logiciel client utilise une API (Application Programming Interface) appelée ODBC. Ces API sont généralement écrites par les éditeurs de SGBD eux mêmes. Il est ainsi possible à partir d’un même programme d’accéder à différents SGBD à partir du moment où l’on
possède les drivers de son API.
ODBC utilise le langage SQL supporté par la quasi totalité des SGBD, et particulièrement, les SGBD relationnels.

Nous n’allons pas décrire l’utilisation des fonctions ODBC puisqu’elles s’utilisent de manière identique à celles décrites précédemment pour mySQL.

Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante