Exécution de requêtes depuis PHP

Version projecteur
>

Pour expliquer le principe d'interrogation d'une base de donnée avec Php-MySQL, voici un premier exemple de programme hote écrit en Php.

En exécutant l'exemple vous constaterez que cette page affiche une table contenant uniquement les colonnes NumeroH,HeureDepart, VilleDepart de la table Horaires.

Le script Php utilise différentes fonctions de la libraire Includes-Du-Prof.php que nous détaillerons ici.

Analysons les instructions PHP de notre exemple.

Connexion au serveur: mysql_connect

Avant de pouvoir exécuter une requête, il faut se connecter au serveur SQL. Dans notre exemple, ceci est réalisé par l'appel à la fonction ConnexionServeurSQL, qui fait elle même appel à la fonction Php mysql_connect. Voici le code source de la fonction ConnexionServeurSQL :


ConnexionServeur.jpg, 12kB

mysql_connect sert à établir une connexion avec le serveur de base de donnée. Le premier paramètre est l'IP du serveur de base de donnée. Le second est l'identifiant de l'utilisateur et le troisième son mot de passe. Dans notre exemple, le serveur de base de donnée s'exécute en local sur votre machine. Son IP est donc désigné par localhost. L'utilisateur est root et son mot de passe est la chaine vide. Notez que l'utilisateur root existe toujours et que la chaine vide est son mot de passe par défaut.

Sélection de la base de donnée: mysql_select_db

L'instruction suivante appelle la fonction mysql_select_db :

    mysql_select_db ('BDVols');

Cette fonction sert à sélectionner la base de donnée avec laquelle on veut travailler. Dans notre exemple, il s'agit de la base de données BDVols.

Exécution de la requête: mysql_query

L'instruction suivante stocke la requête dans la variable $Requete :

 $Requete= "SELECT NumeroH, HeureDepart,
              VilleDepart FROM Horaires";

Cette requête est ensuite envoyée au serveur MySQL par un appel de la fonction ExecuterRequete, qui fait elle même appel à la fonction php mysql_query.

Voici le code source de la fonction ExecuterRequete:

ExecuterRequete.jpg, 34kB

On aurait pu utiliser directement la fonction mysql_query, mais cette fonction permet d'afficher également un message d'erreur et la requête exécutée, dans le cas où la requête contient une erreur de syntaxe ou que son exécution pose un problème quelconque.

mysql_query par contre, n'affiche aucun message d'erreur. Je vous recommande donc vivement l'utilisation de la fonction ExecuterRequete.

Notez que mysql_query retourne un résultat.

Le type de ce résultat dépend de la requête exécutée.

En particulier, s'il s'agit d'une requête select et uniquement dans ce cas, mysql_query retourne la représentation de la table retournée par la requête. Il est alors possible d'accéder à cette représentation par diverses fonctions PHP. Nous verrons cela plus en détails dans la partie du cours consacrée à l'accès aux tables.

Affichage de la table

Enfin, la dernière instruction du script :

   AfficherTableSQL ($Resultat);

est un appel à une fonction de la librairie Includes-Du-Prof.php qui permet d'afficher une table. Dans cet exemple précis, elle affiche donc la table $Resultat.