Vous êtes sur la page 1sur 6
sation d’une base de données en PHP : cas de MySQL Pouvoir travailler avec la base de données en PHP, il faut d'abord s'y connecter. PHP propose plusieurs moyens de se connecter A une base dle données MySQL ‘© Liextension mysql_ : ce sont des fonctions qui permettent d'aceéder a une base de données MySQL et done de communiquer avec MySQL. Leur nom commence toujours par mysql_. Toutefois, ces fonctions sont vi plus les utiliser aujourd'hui. © Lextension mysqli_ : ce sont des fonctions améliorées d'accés & MySQL. Elles proposent plus de fonctionnalités et sont plus 4 jour. © L’extension PDO : cest un outil complet qui permet d'accéder & n'importe quel type de base de données. On peut done utiliser pour se connecter aussi bien a MySQL qu’ a PostgreSQL ou Oracle. Jes et on recommande de ne Ce sont toutes des extensions car PHP est trés modulaire. On peut ajouter ou supprimer des éléments & PHP trés facilement, car tout le monde n'a pas forcément besoin de toutes les fonetionnalités. Nous allons ici utiliser PDO. Le principale avantage de PDO est que vous pouvez l'utiliser de la méme maniére pour vous connecter a n'importe quel autre type de base de données (PostgreSQL, Oracle...) PostgreSQ ee Normalement, PDO est activé par défaut. Pour le vérifier, il suffit de faire un clic gauche sur Tiicéne de WAMP dans la barre des taches, puis allez dans le menu PHP / Extensions PHP et vérifiez que php_pdo_mysq] est bien coché. pap pu nicune Jlement php.ini) et aussi ouvrir le fichier de configuration de PHP (qui sappell On peut point-virgule devant sil y ena un rechercher la ligne qui contient php_pdo_mysql. Enlevez.le pour activer l'extensio e PDO est activé, nous pouvons nous connecter a Maintenant que nous sommes certains qu MySQL. Nous allons avoir besoin de 4 renseignements + clest adresse de ordinateur ot MySQL est installé (comme une plus souvent, © Le nom de I'hote adresse IP). Le MySQL est installé sur le méme ordinat localhost (aui sigt méme ordinateur"). Néanmoins, il est possible que votre cemple sql-hebergeur.com). Dans ce cas il faudra it que PHP : dans ce cas, mettez Ia valeur "sur le hébergeur web vous indique une autre valeur & renseigner (par modifier cette valeur lorsque vous enverrez votre site sur le web, laquelle vous voulez, vous connecter. © La base : c'est le nom de la base de données al: Dans notre cas, la base sappelle test. Nous l'avons créée avec phpMyAdmin dans le précédent chapitre ez-vous auprés de votre hébergeur Le login : il permet de vous identifier. Rens pour le connaitre. Le plus souvent (chez un hébergeur gratuit) clest le méme login que yous utilisez pour le FTP. © Le mot de passe : il ya des chances pour que le mot de passe soit le méme que celui ez-vous auprés de votre hébergeur. que vous utilisez pour accéder au FTP. Rensei Pour Vinstant, nous faisons des tests sur notre ordinateur & la maison. On dit qu’on travaille ven local", Par conséquent, le nomde I'hote sera localhost. Quant au login et au mot de passe, par défaut le login est root et il n'y a pas de mot de passe. Voici donc comment on doit faire pour se connecter 4 MySQL via PDO sur la base test : ?php $bdd = new —_-PDO(‘mysql:host=localhost;dbname=test’, ‘root’, > La ligne de code quion vient de voir erée ce qu'on appelle un objet Sbdd. Ce n'est pas vraiment tune variable (méme si ¢a y ressemble fortement), c'est un objet qui représente la connexion & Ja base de données. On erée la connexion en indiquant dans Vordre dans les parametres : © Lenom d'héte (localhost) © La base de données (test) © Le login (root) ‘© Le mot de passe (ici il n'y a pas de mot de passe, on a done mis une chaine vide) 1. Tester la présence d'erreurs Si vous avez-renseigné les bonnes informations (nom dhote, base, login, mot de passe), rien ne devrait slafficher a Iécran. Toutefois, s'il y a une erreur (vous vous étes trompé de mot de passe ou de nom de base de données par exemple), PHP risque dafficher toute la ligne qui nnn crt M. LONKENG: 2 age 2 Uiilisation d'une BD. Verreur, ce qui_—inclut’ «= le. =~ mot._— de_—opasse pose t voir le mot de passe si une erreur survient Vous ne voudrez pas que vos visiteurs puiss lorsque votre site est en ligne. Il est préférable de traiter Verreur, En eas d'erreur, PDO renvoie ce quon appelle une exception qui permet de “eapturer” erreur Voici comment je vous propose de faire <2php try t Spdo_options[PDO::ATTR_ERRMODE] = PDO: ERRMOD! Sbdd = new PDO(‘mysql:host=localhost;dbname=test’ root’, ", $pdo_options); Je atch (Exception Se) t die(Erreur :". re Ici, PHP ex slarréte et "saute" dir dlafficher erreur et d'arréter le script si on arrive dans le bloc catch. array $pdo_options que l'on envoie en paramétre sur la lation est dactiver les exceptions PDO. Grace a ce XCEPTION; cute les instructions a Vintérieur du bloc try{ } - Si une erreur se produit, il pour savoir quoi faire. Iei, on choisit tement au niveau du catch{ } Enfin, vous noterez qu'on crée un ligne suivante. Liobjectif de cette manipul: petit ajout (que je vous recommande d'effectuer systématiquement), nous pourrons récupérer Jes erreurs lorsqufelles se produisent. 2, Récupérer les données Nous allons dans un premier temps apprendre 2 puis nous verrons dans la suite comment ajouter et modifier des données, Pour récupérer des informations de la base de données, nous avons besoin de notre objet qui a la base, ire des informations dans la base de données, représente la connexion a Vous vous souvenez, il s'agit de $bdd. Nous allons effectuer la requéte comme ceci = <2php Sreponse = Sbdd->query("Tapez votre requéte SQL ici’ > Sreponse contient maintenant la réponse de MySQL 3. Afficher le résultat d'une requéte Le probléme, c'est que Sreponse contient quelque chose d'inexploitable. MySQL nous renvoie beaucoup d'informations et il faut les organiser. Vous imaginez toutes les informations qui sont dedans ? Si c’est une table & 10 champs, avee 200 entrées, cela représente plus de 2000 informations ! Pour ne pas tout traiter d’un coup, on extrait cette réponse ligne par ligne, c'est-d-dire entrée par entrée. Pour récupérer une entrée, on prend la réponse de MySQL et on y exécute fetch(), ce qui nous renvoie la premiére ligne rr tt M. LONKENG Page 3 Utilisation d'une fetch(); contient champ par champ les valeurs de la premiére entrée. Sdonnees est un array 4} entrée une a une. A chaque fois 4} 11 faudra faire une boucle pour parcourir cl : appellerez. Sreponse->fetch(), vous passez a lentrée suivante. La boucle est done réperce aque autant de fois qu'il n'y a d'entrées dans votre table. ‘TP : voir fiche TP N°3 M. LONKENG Application Web, Développement ¢ TP N°3 EXCERCICE Naser MCD d'une bese de données voiture qui enregisre les Conroe dVimmatriculation des vehicules en circulation (carte grise. Elle doit répondre aux Cor aintes suivantes = Un véhicule est d’un modéle donné identifié par un numéro de tyPe Ie vekdoala bet avolr ui ou plusieurs propridialres slmultanément (coproP ar exemple, tous les joivent permettre de retrouver, P sur la base d es d'un véhicule dont on conna 1a ou les personnes proprictair res d'un modéle de voiture donne. es effectude: ait + Les reche véhicules dune personne, | Pimmatriculation et tous les propriétai > Criez le MLD de Ia base voiture a partir du MCD de la question 1 Vérifiez la conformité du modele par rapport aux formes normales. es voiture puis les tables. 3. Utilisez phpMyAdmin pour créer la base de don a la base de données «voiture ». Si la connecter », dans le cas contraire on 4. Créer une page « connexion.php » pour se Connexion réussie connexion est établie on affiche le message « affiche le message « Connexion impossible ». 1¢ de tous les champs de la table «véhicule 5. Créer une page « Afficher.php » pour 'affichi 6. Créer une page « AfficherTableau.php » pour Faffichage de tous les champs de la table «véhicule » sous forme d’un tableau. fos.php » pour T'aflichage de tous les champs de la table 7. Créer une page « Afficherlnf Bea sous forme d'un tableau. Ajouter le calcul et Maffichage du nombre total de propriétaires (personnes) des véhicules. 8. Ajouter une feuille de style pour mettre en évidence les informations, PROJET PROGRAMMATION WEB Cahier des charges On désire gérer par des moyens informatiques (un site web d temps de PIUTS. Cette Institution est constituge de plusieurs départements (TR, FM, Gi...), Les étudiants de chaque département sont répartis en plusieurs promotions. Dans Je cas du département GI par exemple, nous avons les Gil, les G12. Pour simplifier le projet, nous ne détaillerons pas la répartition en groupes de TD et de TP au sein de chaque lynamique) les emplois du promotion. Les emplois du temps seront constitués de créneaux (date, heure de début, heure de fin) de différents types (ex: Cours, TD, TP, Projet Tutoré). Chaque eréneau conceme une matiére (du référentiel) et un seul enseignant (de la liste des enseignants). 1! nous faut en outre connaitre la salle (également choisie dans une liste) ot se déroule le créneau. ecisien de Ae systéme seront, organisés en trois catégories : les étudiants en les ‘mplois de temps uniquement), les enseignants (consultation et ication des Emplois de temps), et les administratifs qui auront accés a des pages aaTEnarITernieretmeneeeeneemneneeneraeeeianaeEeeetEeeeteateReREEeEReRaSER EERE Rostand LONKENG Page sp d'une salle, cr sous affichage sous forme de La consultation ation des - prom Emplois Développe ment d’Applicat fiques Xx: enregistrement ° tion dun cours, sery tudiants, enregistrement d'un enseignant, création ¢ TD d'un enseignant) de temps se fera par semaine et, au choix, par n, par ens a ar salle. Dans un premier temps, l"aflichage pourra se faire forme de ignant ou p: le (chronolo; 'gique). Si vous le souhaitez, vous pouvez envisager un nainier. Travail a réaliser we 4, A partir du cahier des charges, faire une premiére ébauche de la structure de votre site web: quelles pages? Quels formulaires? Quels scripts PHP appeler quand on valide un formulaire? Quel “calcul” réalisé par chaque script? Que doit-il retourner au client? Comment ce résultat devrait étre "présenté" a Putilisateur? . Fort de ce premier travail, identifier les informations nécessaires @ ce systeme associations, puis informatique et concevoir Ia base de données: schéma entité traduction (via le Hhéma relationnel) en requétes SQL pour créer les tables. re certains Préparer également les requétes SQL dont vous aurez besoin pour que votre BD est Eerire vos premié Waflichage de rés bien congue” pages HTML (pages statiqu iltats). La partie HTML ne vous posant plus formulaires, pages de test Je soucis, vous pouvez maintenant écrire vos propres scripts PHP. D°abord en fonctionnement “autonome”, puis en utilisant les données transmises par le formulaire, puis finalement en interrogeant votre base de données. NB: A terme ce serait une bonne idée de remplir les listes de choix de vos choix d’une salle) & partir des données présentes dans votre BD... formulaires (6 Berire une feuille de style CSS "basique" pour apprendre a dissocier le contenu de Ja forme dans une page HTML. . Gérer le probléme de l’accés aux différentes fonctionnalités de votre site en fonction du réle de utilisateur: étudiant, enseignant ou administratif.

Vous aimerez peut-être aussi