La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Jean-Michel ILIE - novembre 20051 SIL - module M12 Programmation Internet en PHP SIL module M12 Jean-Michel Ilié IUT Paris 5 - département informatique.

Présentations similaires


Présentation au sujet: "Jean-Michel ILIE - novembre 20051 SIL - module M12 Programmation Internet en PHP SIL module M12 Jean-Michel Ilié IUT Paris 5 - département informatique."— Transcription de la présentation:

1 Jean-Michel ILIE - novembre SIL - module M12 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

2 Jean-Michel ILIE - novembre SIL - module M12 PLAN du cours  Introduction : composants additionnelles aux langages (dont gestionnaires de bases de données)  interface MYSQL

3 Jean-Michel ILIE - novembre SIL - module M12 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’)) …

4 Jean-Michel ILIE - novembre SIL - module M12 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

5 Jean-Michel ILIE - novembre SIL - module M12 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

6 Jean-Michel ILIE - novembre SIL - module M12 Serveur MYSQL de bases de données (2) 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 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 Pour des questions d'économie de liaison, le serveur gère toutes les données y compris les tables de résultats bd admin (mysql) bds utilisateur temporaire

7 Jean-Michel ILIE - novembre SIL - module M12 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.

8 Jean-Michel ILIE - novembre SIL - module M12 Connexion à une base de données MySQL 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*) MYSQL * mysql_connect ($hostName, $userName, $password); //connexion temporaire // validité maximum : 1a page courante MYSQL * mysql_pconnect ($hostName, $userName, $password); //connexion permanente

9 Jean-Michel ILIE - novembre SIL - module M12 Exemple de connexion MySQL

10 Jean-Michel ILIE - novembre SIL - module M12 Accès à une des bases de données 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 mysql_select_db ($baseName [, $link] ); //selection d'une base de données existante //après connexion définition de base de données courante pour une connexion

11 Jean-Michel ILIE - novembre SIL - module M12 Requêtes SQL 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) MYSQL * mysql_query ($query [, $link]); $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' ] Notion de ligne courante dans une table résultat

12 Jean-Michel ILIE - novembre SIL - module M12 Exemple de requête SQL Requête de sélection (après connexion et sélection de base) ID (PRIMARY KEY) NOM VILLE Table Personnes NOM, $enreg-> , $enreg->VILLE";} ?>

13 Jean-Michel ILIE - novembre SIL - module M12 Rappel : autres requêtes classiques CREATE, SELECT, DELETE ID(PRIMARY KEY)(automatic incrementation) NOM VILLE Table Personnes A utiliser dans une requête msql_query

14 Jean-Michel ILIE - novembre SIL - module M12 Gestion des contraintes d’intégrité ID(PRIMARY KEY) NOM VILLE Table Personnes NOM_DOC THEME DESC URL POSTEUR Table Documents Exple à utiliser dans une requête msql_query !! Choisir des tables de types INNODB pour permettre les clés étrangères

15 Jean-Michel ILIE - novembre SIL - module M12 Libération des ressources  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 La libération des ressources est à faire dès que possible --> le site web n'a pas qu'un client !!!

16 Jean-Michel ILIE - novembre SIL - module M12 Informations sur la structure des bases 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 $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 $nb = mysql_num_rows ($refListeB); //nb de lignes de la table = nb de base Puis accès standard aux données via la table aux données

17 Jean-Michel ILIE - novembre SIL - module M12 Informations d'erreurs sur requêtes  mysql_errno ( [$link] ); //numéro de l'erreur  mysql_error ( [$link] ); //texte de l'erreur exit avec msg

18 Jean-Michel ILIE - novembre SIL - module M12 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.

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


Télécharger ppt "Jean-Michel ILIE - novembre 20051 SIL - module M12 Programmation Internet en PHP SIL module M12 Jean-Michel Ilié IUT Paris 5 - département informatique."

Présentations similaires


Annonces Google