IV.1.Généralités
Le Web n'est plus maintenant un terme connu de quelques
initiés et passionnés d'informatique. Il n'est pas de jour
où, dans une publicité, un journal, à la
télévision on ne voit un quelconque « http://... ». On
assiste même à une promotion du Web par les pouvoirs politiques,
relayée abondamment pas les médias.
S'il est apparu à l'origine pour faciliter la
communication entre chercheurs en physique il a vu le jour en 1989 au CERN de
Genève à l'initiative de Tim Berners - Lee il a depuis largement
débordé son domaine. Le Web couvre maintenant pratiquement
n'importe quel sujet possible.
L'environnement PHP/MySQL facilite pour son utilisation,
même pour les non-spécialistes d'informatique, et son utilisation
dans beaucoup d'application informatique mondiale expliquent son succès.
Pourtant derrière les pages colorées, les images animées
ou toute autre fantaisie rencontrée en surfant, le Web est avant tout un
outil de communication et de transfert d'information. Très vite, se
ressent le besoin de faire connecter des données avec ce moyen de
communication et de les mettre sur le réseau.
C'est l'objet de ce mémoire : on montrera comment
connecter une base de données désormais largement répandue
: MySQL avec un serveur Web.
Après la création de pages HTML statiques, on
s'aperçoit de l'utilité de pouvoir générer des
pages dynamiques. Ceci est rendu possible grâce à la programmation
CGI. Celle-ci rendra possible une interaction entre le client demandeur
d'information et le serveur.
9 Environnement PHP/MySQL
.Source :www.developpez.com/club de développeurs
43
IV.2.Apports de MySQL et PHP
Tout avantage de la combinaison MySQL/PHP par rapport à
une solution CGI classique tient dans la puissance et la facilité
d'utilisation de ces outils. La comparaison entre les deux techniques montre
que l'environnement MySQL/PHP nous permet de faire beaucoup mieux et beaucoup
plus. Il est en fait assez facile de se convaincre que l'approche
adoptée par le programme CGI au chapitre précédent souffre
de nombreuses faiblesses et que beaucoup d'efforts seraient nécessaires
pour obtenir une application tenant la route. Les problèmes
découlent en premier lieu de l'utilisation directe des fichiers texte
:
? Rigidité du format ;
? Lourdeur d'accès aux données ; ? Manque de
sécurité ;
? Pas de contrôle de concurrence.
Tous ces problèmes sont reconnus comme étant
très difficiles à résoudre. Il existe donc des logiciels
spécialisés qui prennent en charge tous les problèmes
d'accès aux données stockées dans un ou plusieurs
fichiers, plus généralement appelées base de
données10. Ces logiciels sont les systèmes de
gestion de bases de données, (SGBD), et MySQL en est un
représentant.
IV.2.1.MySQL
Le recours à MySQL permet de masquer les détails
complexes et fastidieux liés à l'utilisation de fichiers. MySQL
gère pour nous les fichiers constituant une base de données,
prend en charge les fonctionnalités de protection et de
sécurité et fournit un ensemble d'interfaces de programmation
(dont une avec PHP) facilitant l'accès aux données.
10 Bases des données : Ensemble d'informations
enregistrées dans un support pour satisfaire simultanément
plusieurs utilisateurs de façon sélective et au moment opportun.
Base des données G3 Math-info/upn 2010-2011.Cours Inédit. CT
Docteur KAZADI.
44
La complexité de logiciels MySQL est due à la
diversité des techniques mises en oeuvre, à la
multiplicité des composants intervenant dans leur architecture, et
également aux différents types d'utilisateurs (administrateurs,
programmeurs, non informaticiens, ...) qui sont confrontés, à
différents niveaux, au système.
MySQL consiste en un ensemble de programme qui sont
chargés de gérer une ou plusieurs bases de données, et qui
fonctionnent selon une architecture client/serveur.
Figure 8:Serveur et client de MySQL
? Le serveur mysqld. Le processus mysqld est le
serveur de MySQL. Lui seul peut accéder aux fichiers stockant les
données pour lire et écrire des informations.
? Utilitaires. MySQL fournit tout un ensemble de programmes,
que nous appellerons utilitaires par la suite, qui sont chargés
de dialoguer avec mysqld, par l'intermédiaire d'une
connexion, pour accomplir un type de tâche particulier. Par
exemple mysqldump permet d'effectuer des sauvegardes, mysqlimport
peut importer des fichiers ASCII dans une base, ... Le client le plus
utile est simplement nommé mysql, et permet d'envoyer
directement des commandes au serveur.
45
La base de données est un ensemble de fichiers stockant
les informations selon un format propre à MySQL et qui peut être
resté inconnu à l'utilisateur. Le serveur est le seul
habilité à lire/écrire dans ce fichiers, en fonction de
demandes effectuées par des clients MySQL.
Notons qu'il peut y avoir plusieurs clients accédant
simultanément à une même base. Le serveur se charge de
coordonner ces accès. Les clients de MySQL communiquent avec le serveur
pour effectuer des recherches ou des mises à jour dans la base. Cette
communication n'est pas limitée à des processus situés sur
la même machine : il est possible de s'adresser au serveur MySQL par un
réseau comme l'Internet, même si nous n'utiliserons pas cette
possibilité puisque notre client (un serveur web Apache) est
situé sur la même machine physique que le processus
mysqld.
Il est possible de créer soi-même son propre
client MySQL en utilisant des outils de programmation qui se présentent
sous la forme d'un ensemble de fonctions, habituellement désigné
par l'acronyme API pour Application Programming Interface. MySQL
fournit une API en langage C, à partir de laquelle plusieurs autres ont
été crées, dont une API en PHP. Comme tous les autres
clients de MySQL, un script PHP en association avec Apache doit établir
une connexion avec le serveur pour pouvoir dialoguer avec lui et rechercher ou
mettre à jour des données (figure IV.8.).
IV. 2.1.1. Bases de données relationnelles
MySQL est un SGBD relationnel, comme
beaucoup d'autres dont ORACLE, SYBASE, SQL/Serveur, ... Le point commun de tous
ces systèmes est de proposer une représentation extrêmement
simple de l'information sous la forme de table. Voici une table
relationnelle Abonné, montrant quelques informations concernant la
personne physique.
46
Nom
|
Prénom
|
Ville
|
Numéro d'appel
|
Lutumba
|
Joseph
|
Kananga
|
0821622200
|
Anunga
|
Jan
|
Kinshasa
|
0999856444
|
Mpemba
|
Luz jaspe
|
Matadi
|
0819232071
|
Lutumba
|
Herve
|
Kinshasa
|
0845562211
|
Kitoto
|
Mamie
|
Kinshasa
|
0996855556
|
Tableau 2: tableau des clients montrant des informations
concernant le personne physique
Il y a quelques différences essentielles entre cette
représentation et le stockage dans un fichier. D'une part les
informations sont conformes à une description précise. Ici la
table s'appelle Abonné, et elle comprend un ensemble d'attributs comme
Nom, Prénom, ... Une base de données est constituée d'une
ou plusieurs tables, dont les descriptions sont connues et gérées
par le serveur.
Les SGBD relationnels offrent non seulement une
représentation simple et puissante, mais également un langage,
SQL, pour interroger ou mettre à jour les données.
Cette approche est très simple puisqu'elle se contente
d'indiquer ce que l'on veut obtenir, à charge pour le SGBD de
déterminer comment on peut l'obtenir. SQL est un langage
déclaratif qui permet d'interroger une base sans se soucier de
la représentation interne des données, de leur localisation, des
chemins d'accès ou des algorithmes nécessaires.
A ce titre il s'adresse à une large communauté
d'utilisateurs potentiels (pas seulement des informaticiens) et constitue un
des atouts les plus spectaculaires (et le plus connu) des SGBD relationnels.
Nous pouvons l'utiliser de manière interactive, mais également en
association avec des interfaces graphiques, des outils de reporting ou,
très généralement, des langages de programmation.
Ce dernier aspect est important en pratique car SQL ne permet
pas de faire de la programmation au sens courant du terme et doit donc
être associé avec un langage comme le C, ou PHP.
11 PHP :
Personal Home Page .Programmation Internet L2 Math-info/UPN.2012-2013
Cours Inédit. Professeur ENGOMBE WEDI
47
|