Techniques Internet de Base 2006-2007 Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA

Slides:



Advertisements
Présentations similaires
Configuration d’un cluster, interface unifiée :
Advertisements

Scripts PHP Interaction avec MySQL Insert, Select, ….
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 11 Patrick Reuter.
Créer une base de données MySQL
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 10 Patrick Reuter.
Utilisation ou copie interdites sans citation Rémi Bachelet – Ecole Centrale de Lille 1 CentraleWiki : fonctionnement Image : SourceSource École Centrale.
MySQL I / Présentation. II / Administration et Outils.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
2-Generalites FTP:Protocole De transfert de fichiers sur un réseau TCP/IP. Permet de copier des fichiers depuis ou vers un autre ordinateur du reseaux,d'administrer.
4.La connexion de données 4-1.Présentation 4-2.Le mode actif 4-3.Le mode passif 4-4.Les commandes.
MySQL et PHP.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Jérôme CUTRONA PHP et bases de données Jérôme CUTRONA 01:07:51 Programmation Web
Bonnes pratiques ez publish
Révision Avant lintra – Architecture de lordinateur, les composants, le fonctionnement, codage – Système dexploitation: organisation des données (fichier),
2006/2007Denis Cabasson – Programmation Web Cours de programmation web ENSAE
CPI/BTS 2 Programmation Web Introduction au PHP
ResExam : Installation et utilisation
L’utilisation des bases de données
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
Mars 2013 Grégory Petit
Le langage PHP 5.
Rapport de TER 2002 R₫alisation d'un site web dynamique en PHP / MySql
Comprendre l’environnement Web
JDBC ou comment manipuler une base de données en Java ?
Les instructions PHP pour l'accès à une base de données MySql
Biologie – Biochimie - Chimie
Développement dapplications web Authentification, session.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
MySQL Création des sites dynamiques
Web dynamique PhP + MySQL AYARI Mejdi 2006
Module 5 : Publication de ressources dans Active Directory
Exemple a partir du fichier Le voyageur que Bernard nous a envoyé Dans ce fichier le son à été installé par : Diaporama /Transition/Son.
Les transactions.
Sandrine BUENDIA Guillaume GALLET.
CPI/BTS 2 Programmation Web PHP et les Bases de données Prog Web CPI/BTS2 – M. Dravet – 11/03/2004 Dernière modification: 11/03/2004.
Javascript 1° PARTIE : LES BASES
PHP & My SQL.
Jean-Michel ILIE - novembre SIL - module M12 Programmation Internet en PHP SIL module M12 Jean-Michel Ilié IUT Paris 5 - département informatique.
Programmation Internet en PHP SIL module M12
Introduction au langage PHP Licence Pro Cours Internet / Intranet Utilité Historique Exemples Fonctions PHP Classes.
Date : Juillet 2014 Formation : TAI Formateur : Tayeb BENDJELTI
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
PHP 3° PARTIE : GESTION DE FICHIERS ET DE REPERTOIRES
PHP 5° PARTIE : LES COOKIES
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Les réseaux - Internet Historique Réseau local Internet Les protocoles
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Lyda tourisme Process en PHP. Objectif Il s’agit de construire un segment de process dans un système d’information touristique.
 Syntaxe du langage PHP
 Requêtes MySQL en PHP Introduction
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Jérôme CUTRONA PHP PDO Jérôme CUTRONA 07:21:24 Programmation Web
Institut Supérieur d’Informatique
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
PHP 6° PARTIE : LES SESSIONS 1.Introduction 2.Identificateur de session 3.Variables de session 4.Client / Serveur 5.Principe 6.Ouverture de session 7.Enregistrement.
 Formulaires HTML : traiter les entrées utilisateur
Usine d’incinération d’ordures ménagères
Conception de Site Webs Interactifs Cours 7 Patrick Reuter
Initiation au web dynamique Licence Professionnelle.
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Architecture Client/Serveur
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
PHP 4° PARTIE : BASE DE DONNEES
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Introduction au WIKI Par Marc Chevarie.
FACTORY systemes Module 7 Page 7-1 Les outils clients non Wonderware FORMATION InSQL 7.0.
Développement d’applications Web
Transcription de la présentation:

Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA

Accès à MySQL avec PHP

Etapes L'accès à une base MySQL et son utilisation, qu'il s'agisse d'insérer, de modifier ou de lire des données, suit les étapes ci-dessous : 1. Connexion au serveur MySQL 2. Envoi de requêtes SQL au serveur Insertion de données dans la base Recherche dans la base 3. Lecture du résultat d'une requête 4. Fermeture de la connexion

Connexion au serveur MySQL Avant toute chose, le script doit permettre de se connecter au serveur MySQL. La fonction à utiliser est mysql_connect() Syntaxe : $res=mysql_connect($host,$user,$pass[,$multi]); Paramètres : $host : le nom du serveur $user : le nom de l'utilisateur $pass : mot de passe de l'utilisateur $multi : nombre de connexion ouvertes à partir du même script avec les mêmes paramètres

Quelques conseils La fonction retourne une variable de type resource qui est un identifiant de connexion. $res a la même fonction que l' $id retourné par fopen() $host est souvent identifié avec le serveur web, c.a.d. "localhost" Il faut éviter d'utiliser l'utilisateur root pour les opération de lecture/écriture courantes dans la base Exemple : $res=mysql_connect(" ", "dbuser", "aX34p0Zl");

Paramètres de connexion Par mesure de sécurité il peut être utile de placer les valeurs des paramètres de connexion dans un fichier séparé Le fichier peut être inclus dans les scripts d'accès à la base de données à travers la fonction include() Exemple : parametres.inc.php <?php define("MONHOST","localhost"); define("MONUSER","root"); defint("MOTDEPASSE","Az01x4oP"); ?>

Sélection de la base de données Si le serveur comporte plusieurs bases de données, on doit préciser la base désirée au moyen de la fonction mysql_select_db(); Syntaxe : mysql_select_db($nombase,$res); Exemple : $res=mysql_connect(...); mysql_select_db("mabase",$res); La fonction retourne FALSE si la base de données n'existe pas

Fermeture de la connexion La connexion établie prend fin automatiquement quand le script PHP est terminé Il est recommandé de mettre fin à la connexion explicitement dès que possible de façon à liberer le serveur MySQL Cette précaution améliore la vitesse des connexions des autres utilisateurs Pour mettre fin à la connexion, il faut utiliser la fonction mysql_close() Syntaxe : mysql_close($res);

Exemple de connexion à une base <?php include_once("parametres.inc.php"); if(!$idcom | !$idbase) { echo " "; echo "alert('Connexion Impossible à la base $base') "; } //*************** // Requêtes SQL //*************** mysql_close($idcom); ?>

Fonction de connexion Fichier connexion.inc.php <?php function connexion($base,$param) { include_once($param.".inc.php"); if(!$idcom | !$idbase) { echo " "; echo "alert('Connexion Impossible à la base $base') "; } return $idcom; } ?>

Utilisation de connexion.inc.php Dans chaque script qui accède à une base de données on pourra ajouter les lignes suivantes avant toute requête include("connexion.inc.php"); $idcom=connexion("mabase","parametres");

Envoi de requêtes SQL au serveur Toute opération sur une base nécessite d'envoyer au serveur une requête SQL rédigée selon la syntaxe vue dans le cours précédent Pour envoyer une requête, il faut utiliser la fonction mysql_query() Syntaxe $result=mysql_query($requete, $res); Paramètres : $requete : chaîne contenant la requête SQL $res : id de la connexion

Résultats d'une requête La fonction retourne un identifiant de résultat de type resource Si la requête contient des commandes SELECT, cet identifiant permet d'accéder aux données fournies par la requête Pour les autres requêtes, la fonction retourne TRUE si la requête est bien exécutée Si une requête quelconque n'est pas exécutée la fonction mysql_query() retourne FALSE

Exemple d'envoi de requête <?php include("connexion.inc.php"); $idcom=connexion("mabase","parametres"); $requete="SELECT * FROM album ORDER BY nom"; if(!$result) { echo "Lecture impossible"; } else { //Lecture des résultats éventuels } ?>

Lecture du résultat d'une requête Pour lire le résultat d'une requête contenant la commande SELECT, il est indispensable de recueillir les données Le résultat d'une requête peut être traité comme un tableau La fonction mysql_fetch_row() récupere une ligne à la fois Syntaxe $arrayres=mysql_fetch_row($idresult); La fonction retourne un tableau (numérique) contenant autant d'éléments qu'il y a de colonnes précisées dans la requête SELECT Chaque nouvel appel de la fonction retourne la ligne suivante du résultat, où FALSE s'il n'y a plus de ligne à lire

Nombre de lignes et colonnes d'un résultat La fonction mysql_num_fields($idresult) retourne le nombre de colonnes du résultat La fonction mysql_num_rows($idresult) permet de connaitre le nombre de lignes du résultat

Libération de la mémoire Une fois les données utilisées, il est possible de libérer la mémoire occupée par la variable $idresult en appelant la fonction mysql_free_result($idresult)

Exemple (tableau numérique) 1 Lecture de la table article <?php include("connexion.inc.php"); $idcom=connex("mabase","parametres"); $requete="SELECT artist.name, album.name, label.name, album.year FROM artist, album, label WHERE artist.id=album.artist_id AND album.label_id=label.id"; if(!$result) { echo "Lecture impossible"; }

Exemple (tableau numérique) - 2 else { $nbart=mysql_num_rows($result); echo " Il y a $nbart albums "; echo " "; while($ligne=mysql_fetch_row($result)) { echo " "; foreach ($ligne as $valeur) { echo " ".$valeur." "; } echo " "; } echo " "; mysql_free_result($result); } ?>

Lecture à l'aide d'un tableau associatif La fonction mysql_fetch_assoc() récupere une ligne à la fois dans un tableau associatif Syntaxe $arrayres=mysql_fetch_assoc($idresult); La fonction retourne un tableau associatif contenant autant d'éléments qu'il y a de colonnes précisées dans la requête SELECT Les clés sont les nom des colonnes Chaque nouvel appel de la fonction retourne la ligne suivante du résultat, où FALSE s'il n'y a plus de ligne à lire

Exemple (tableau associatif) 1 Lecture de la table article <?php include("connexion.inc.php"); $idcom=connex("mabase","parametres"); $requete="SELECT artist.name as Artiste, album.name as Album, label.name as Label, album.year as Annee FROM artist, album, label WHERE artist.id=album.artist_id AND album.label_id=label.id"; if(!$result) { echo "Lecture impossible"; }

Exemple (tableau associatif) - 2 else { $nbart=mysql_num_rows($result); echo " Il y a $nbart albums "; echo " "; while($ligne=mysql_fetch_assoc($result)) { echo " "; foreach ($ligne as $cle=>$valeur) { echo " ".$cle." "; echo " ".$valeur." "; } echo " "; } echo " "; mysql_free_result($result); } ?>

Lecture des noms de colonnes Pour lire les noms des colonnes du résultat d'une requête : $colonne=mysql_field_name($resultat, $num_col) $num_col est le numéro de la colonne dont on veut connaître le nom

Insertion de données Exemple d'insertion de données : Nouvelle intervention dans un forum Inscription d'un utilisateur... L'insertion de données se fait presque toujours à partir d'un formulaire HTML Il faut gérer les caractères spéciaux

Gestion des caractères spéciaux Il est préférable d'utiliser un caractère d'échappement pour les caractères spéciaux des chaînes récupérées dans le tableau $_POST, en particulier les guillemets On dispose de deux fonctions $val=mysql_escape_string($chaine); $val=mysql_real_escape_string($chaine); La deuxième fonction prend en compte le jeu de caractères utilisé (ex. latin1 )

Exemple – Inscription en ligne 1 <?php include('connexion.inc.php'); if(!empty($_POST['nom'])&& !empty($_POST['adresse'])&& !empty($_POST['ville'])) { $id_utilisateur="\N"; $nom=mysql_escape_string($_POST['nom']); $prenom=mysql_escape_string($_POST['prenom']); $age=mysql_escape_string($_POST['age']); $adresse=mysql_escape_string($_POST['adresse']); $ville=mysql_escape_string($_POST['ville']); $mail=mysql_escape_string($_POST['mail']); //Requète SQL $requete="INSERT INTO utilisateur VALUES('$id_utilisateur','$nom','$prenom','$age','$adresse', '$ville','$mail')"; $idcom=connex('mabase','parametres'); $result=mysql_query($requete,$idcom);

Exemple – Inscription en ligne 2 if(!$result) { echo mysql_errno(); echo mysql_error(); echo " alert('Erreur : ".mysql_error()."') "; } else { echo " alert('Vous êtes enregistré Votre id utilisateur est : ". mysql_insert_id()."') "; } else {echo " Formulaire à compléter! ";} ?>

Mise à jour d'une table Exemples : Changement du mot de passe Mise à jour du prix d'un produit Misa à jour d'un compteur... Il faut traiter les caractères spéciaux

Exemple – Mise à jour 1 <?php if($_POST['modif']!='Enregistrer') { //FORMULAIRE } elseif(isset($_POST['nom'])&& isset($_POST['adresse'])&& isset($_POST['ville'])) { include('connexion.inc.php'); $nom=mysql_escape_string($_POST['nom']); $adresse=mysql_escape_string($_POST['adresse']); $ville=mysql_escape_string($_POST['ville']); $mail=mysql_escape_string($_POST['mail']); $code=mysql_escape_string($_POST['code']); $requete="UPDATE utilisateur SET nom='$nom',adresse='$adresse',ville='$ville',mail='$mail' WHERE id_utilisateur='$code'"; $idcom=connex('mabase','parametres'); $result=mysql_query($requete,$idcom); mysql_close($idcom);

Exemple – Mise à jour 2 if(!$result) { echo " alert('Erreur : ".mysql_error()."') "; } else { echo " alert('Vos modifications sont enregistrées');window.location='index.htm'; "; } else { echo "Modifier vos coordonnées!"; } ?>