Programmation Internet en PHP SIL module M12

Slides:



Advertisements
Présentations similaires
Active Directory Windows 2003 Server
Advertisements

Module 5 : Implémentation de l'impression
Novembre 2005 – Michel Desconnets PHP : théorie Objectif : introduire les concepts globaux permettant d'aborder la programmation en PHP.
CRÉER UNE APPLICATION INTERNET RELIEE A UNE BASE DE DONNEES
Connecteurs entre socle et briques applicatives Journées rencontres du CSIESR 31 janvier et 1 er février 2005 Yohan Colmant Université de Valenciennes.
Scripts PHP Interaction avec MySQL Insert, Select, ….
Une solution personnalisable et extensible
MySQL I / Présentation. II / Administration et Outils.
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
MySQL et PHP.
Design Pattern MVC En PHP5.
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
1 Modèles de lEconomie Numérique Michel de Rougemont University Paris II.
Sécurité Informatique
Active Directory Windows 2003 Server
26 juin 2009LEFEVRE Christophe1 Module raw et connexions distantes.
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
L’utilisation des bases de données
Module 1 : Préparation de l'administration d'un serveur
Le langage PHP 5.
JDBC ou comment manipuler une base de données en Java ?
Les instructions PHP pour l'accès à une base de données MySql
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
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
L3 Module Libre Année universitaire Initiation à la Bioinformatique Jean-Michel RICHER.
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.
‘‘Open Data base Connectivity‘‘
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.
JavaScript Nécessaire Web.
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.
Présentation du produit
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Jeu de Librairies Virtuelles « DLL » Windows pour la réalisation de programmes informatiques.
Lyda tourisme Process en PHP. Objectif Il s’agit de construire un segment de process dans un système d’information touristique.
PHP & MySQL Master1 ICD Claire Jacquot Emilie Hot le 24/10/2006.
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 10 Accès distant aux bases de données.
 Syntaxe du langage PHP
 Requêtes MySQL en PHP Introduction
Application de gestion des retards
 C'est une fenêtre par laquelle les informations d'une table peuvent être visualisées et changées.  C'est une table virtuelle: ◦ elle n'existe pas ◦
PostgreSQL – Présentation
FTP : File Transfer Protocol (protocole de transfert de fichier ) est un protocole de communication destiné à l'échange informatique de fichiers sur.
AFPA CRETEIL 14-1 Windows NT Environnement des utilisateurs Chapitre 14.
G.KEMBELLEC - UP81 Master 2 THYP Cas pratique d’utilisation De simpleXML Un lecteur de RSS Novembre 2009.
Le Langage SQL Introduction. 2 Historique du Langage SQL E. F. CODD : premiers articles dans les années 70 IBM crée le langage SEQUEL (Structured English.
Module : Pages Web Dynamiques (Production Électronique Avancée)
Programmation Web : PHP
Gérer les utilisateurs
 Formulaires HTML : traiter les entrées utilisateur
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Centralisation des sites web d’ELTA & Mise en place d’un serveur NAS
Module 1 : Vue d'ensemble de Microsoft SQL Server
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.
02/06/2015© Robert Godin. Tous droits réservés.1 5 Interface entre SQL et un programme n SQL incomplet n Défaut d'impédance (impedance mismatch) – modèle.
Introduction à PHP TOURNADRE Guillaume - Informatique Réseaux URL :
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Module 2 3. Stocker ses fichiers dans son porte-documents KOSMOS.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Projet.
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Cours n°2 Implémentation et exploitation
1 CEC A.-CHAVANNE Sites Web et bases de données. 2 UNE BASE DE DONNÉES : POURQUOI ? Manipulation de grandes quantités d’information – représentation des.
FACTORY systemes Module 2 Section 1 Page 2-3 Installation d’Industrial SQL FORMATION InSQL 7.0.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

Programmation Internet en PHP SIL module M12 Jean-Michel Ilié IUT Paris 5 - département informatique Partie II : Accès aux SGBD – cas de MYSQL

PLAN du cours Introduction : composants additionnelles aux langages (dont gestionnaires de bases de données) interface MYSQL

Composants de services associés à l'interpréteur PHP Extensions pour le langage, de type bibliothèque Intégré (dans le cœur du langage) : MYSQL (SGBD), DOM (XML), COM et DOT NET, NuSOAP, … Externe (type bibliothèque) DLL (Windows), SO (Unix) Extensions spécialisées (php_....dll) Création de ses propres composants. Chargement des composants Chargement dynamique à l’initialisation du serveur fichier de configuration voir PHP.ini dans le dossier apache. Chargement par défaut : exemple MYSQLI Chargement/déchargement dynamique à l’exécution (php sous Unix) Test de chargement des composants fonction du langage if (extension_loaded(‘mysqli’)) …

Quelques exemples de composants additionnels extension=php_mysqli.dll MYSQL optimisé ;extension=php_dba.dll BD type fichier ;extension=php_oracle.dll ORACLE (prévoir le client Oracle) ;extension=php_ldap.dll Interface LDAP identification ;extension=php_mcrypt.dll CRYPTAGE ;extension=php_snmp.dll Interface MAIL ;extension=php_sockets.dll Gestion de Sockets ;extension=php_w32api.dll Interface API WINDOWS (fenêtres …) ;extension=php_xmlrpc.dll Compléments XML ;extension=php_xsl.dll ;extension=php_zip.dll Accès aux fichier Zippés A ajouter ou à dé-commenter ( ; ) dans le fichier de configuration php.ni

Serveur MYSQL de bases de données MYSQL : serveur de base de données RELATIONNELLES Connection sécurisée nom, mot-de-passe, postes d’accès (% tout poste, localhost : le serveur courant seul) Sélection de base de données Fonction de requêtes SQL (éventuellement imbriquées) Fonctions ou requêtes SQL de gestion de la structure Gestion de bases de données avancées Contraintes d’intégrité, procédure stockées, trigger, … Compatibilité PL/SQL MSQLI : version MYSQL évoluée Logiciel libre comme PHP (cission avec les concepteurs de MYSQL) Syntaxe orientée objet Performance

Serveur MYSQL de bases de données (2) Pour des questions d'économie de liaison, le serveur gère toutes les données y compris les tables de résultats Serveur de bases de données base administrateur table des bases existantes, tables des sites pouvant se connecter au serveur tables des utilisateurs (dont root) et droits d'accès bases de données utilisateurs tables temporaires de résultats bd admin (mysql) bds utilisateur temporaire Le résultat d'une requête est souvent un entier qualifiant le résultat : une référence sur une table temporaire ou 0 si échec Des requêtes sont nécessaires pour obtenir les valeurs

Connexion à une base de données MySQL connexion = création d'un espace temporaire dans MySql (tables résultats) connect() Connection contextuelle à une page PHP pconnect() Connexion permanente (le même espace est réutilisé pour les pconnect des pages suivantes) Les connexions permanentes sont réservées aux accès multiples rapprochés Il faut penser à se déconnecter le plus rapidement possible.

Connexion à une base de données MySQL MYSQL * mysql_connect ($hostName, $userName, $password); //connexion temporaire // validité maximum : 1a page courante MYSQL * mysql_pconnect ($hostName, $userName, $password); //connexion permanente paramètres URL de la machine hôte ($hostName = adresseweb [:port [:socketEcouteSiUnix]]) nom utilisateur mot de passe retourne une référence pour la connexion ou 0 (type MYSQL*)

Exemple de connexion MySQL <?php $serveur="localhost"; $utilisateur="php"; $passe="php"; if (!($link = mysql_connect($serveur, $utilisateur, $passe))) {echo "erreur de connexion à $Serveur"; exit();} else {echo "base exploitable sous la référence $link"} ?>

Accès à une des bases de données définition de base de données courante pour une connexion mysql_select_db ($baseName [, $link]); //selection d'une base de données existante //après connexion paramètres nom de la base référence de connexion (par défaut : la dernière connectée) retourne une référence sur la base ou 0

Requêtes SQL paramètres Notion de ligne courante MYSQL * mysql_query ($query [, $link]); Notion de ligne courante dans une table résultat paramètres chaîne SQL de la requête (CREATE, SELECT, DELETE …) référence de connexion (optionnel) retourne une référence sur une table- résultat ou renvoie 0 (la référence sert de pointeur de ligne courante) $nb = mysql_num_rows (MYSQL *); //nombre de lignes dans la table résultat $nb = mysql_num_fields (MYSQL *); //nombre de colonnes dans la table résultat $enregT = mysql_fetch_array (MYSQL *); // rend un tableau associatif contenant la ligne courante // puis incrémente le pointeur de ligne $enregO = mysql_fetch_object ($res); //idem mais rend un objet Accès par $enregO->nomChps au lieu de l'accès indicé $enregT['nomChps']

Exemple de requête SQL Requête de sélection Table Personnes Requête de sélection (après connexion et sélection de base) ID (PRIMARY KEY) NOM EMAIL VILLE <?php $nomTable="Personnes"; $rech = "SELECT * from $nomTable WHERE NOM like '%$_GET['nom']%'"; if (!($res =mysql_query($rech, $link))) {exit(); } while ($enregT = mysql_fetch_array($res)) { echo "$enregT['NOM'], $enregT['EMAIL'], $enregT['VILLE']";} //while ($enreg = mysql_fetch_object($res)) { // echo "$enreg->NOM, $enreg->EMAIL, $enreg->VILLE";} ?>

Rappel : autres requêtes classiques CREATE, SELECT, DELETE Table Personnes ID(PRIMARY KEY)(automatic incrementation) NOM EMAIL VILLE A utiliser dans une requête msql_query <?php //... $nouvelleTab = "CREATE TABLE $tableName (NOM CHAR(255), EMAIL CHAR(255), VILLE CHAR(255), ID INT PRIMARY KEY AUTO_INCREMENT)"; $modif = "UPDATE $tableName SET EMAIL='$mail', VILLE='$ville', NOM=$nom" WHERE ID=$id" ; $suppr = "DELETE FRom tableName WHERE ID=$id" ; ?>

Gestion des contraintes d’intégrité Table Personnes Table Documents ID(PRIMARY KEY) NOM EMAIL VILLE NOM_DOC THEME DESC URL POSTEUR Exple à utiliser dans une requête msql_query <?php $nouvelleTab = 'ALTER TABLE Documents ADD CONSTRAINTS Fk_DocPost FOREIGN KEY (Posteur) REFERENCES Personnes(EMAIL) '; ?> !! Choisir des tables de types INNODB pour permettre les clés étrangères

Libération des ressources La libération des ressources est à faire dès que possible --> le site web n'a pas qu'un client !!! void mysql_free_result ($res); //libère la table temporaire référencée par $res void mysql_close ($link); //ferme une connexion au serveur impérativement

Informations sur la structure des bases $refListeB = mysql_list_dbs ($link, $expr); //liste de bases existantes $refListeT = mysql_list_tables ($link, $expr); //liste de tables dans la base courante $refListeC = mysql_list_fields ($link, $nomTable, $expr); // liste des champs // de la table $nomTable Paramètres : $link : identifiant de connexion (optionnel) $expr : expression régulière permettant une selection partielle (non documenté et optionnel) retourne une référence sur la table temporaire créée Puis accès standard aux données via la table aux données $nb = mysql_num_rows ($refListeB); //nb de lignes de la table = nb de base

Informations d'erreurs sur requêtes mysql_errno ([$link]); //numéro de l'erreur mysql_error ([$link]); //texte de l'erreur exit avec msg <?php $requete = mysql_query ($sql_req, db_link) or die (mysql_error()); ?> <?php $link = mysql_connect($hostName, $userName, $password); if (!($listOfDbs = mysql_list_dbs($link))) {printf("erreur:%d %s", mysql_errno($link), mysql_error($link))); exit();} ?>

Exercices Connaissance d'un environnement de gestion MySQL Accès PHP à la structure d'une base Script PHP de création automatique d'une base Conception d’une interface d’interrogation en PHP.

Application Gestion d'un carnet d'adresse Table carnetAdresse (base PHP) ID (PRIMARY KEY) NOM CIVILITE EMAIL VILLE DESCRIPTION TELEPHONE $creat = "CREATE TABLE $tab ( `ID` INT AUTO_INCREMENT , `NOM` VARCHAR(255) NOT NULL, `CIVILITE` ENUM(`Mr`, `Mme`, `Melle`) DEFAULT `Mr`, `EMAIL` VARCHAR(255), `VILLE` VARCHAR(255), `DESCRIPTION` VARCHAR(255), `TELEPHONE` VARCHAR(255), PRIMARY KEY(`ID`)) ENGINE=InnoDB DEFAULT CHARSET=latin1"; Actions sur la table Ajouter un enregistrement Rechercher un enregistrement modifier Détruire