Cours Web n o 7 MySQL et PHP



Documents pareils
COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

CREATION WEB DYNAMIQUE

Bases de données relationnelles

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

PHP 4 PARTIE : BASE DE DONNEES

Mysql avec EasyPhp. 1 er mars 2006

Les bases de données

Le langage SQL Rappels

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Compte-rendu de projet de Système de gestion de base de données

Le Langage SQL version Oracle

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

1 Introduction et installation

Olivier Mondet

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Pratique et administration des systèmes

Le langage SQL (première partie) c Olivier Caron

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

TP3 : Creation de tables 1 seance

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Raja Bases de données distribuées A Lire - Tutoriel

PHP. PHP et bases de données

SQL Historique

Introduction au Système de Gestion de Base de Données et aux Base de Données

Mysql. Les requêtes préparées Prepared statements

Bases de données élémentaires Maude Manouvrier

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

PHP 5. La base de données MySql. A. Belaïd 1

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Bases de données Outils de gestion

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Bases de Données relationnelles et leurs systèmes de Gestion

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Introduction à JDBC. Accès aux bases de données en Java

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Information utiles. webpage : Google+ : digiusto/

I. MySQL : Serveur et SGBD

16H Cours / 18H TD / 20H TP

PDO : PHP Data Object 1/13

Langage SQL : créer et interroger une base

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Stockage du fichier dans une table mysql:

Les BASES de DONNEES dans WampServer

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Installation d'un serveur FTP géré par une base de données MySQL

OpenPaaS Le réseau social d'entreprise

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

Cours: Administration d'une Base de Données

PHP et les Bases de données - Généralités

SQL MAP. Etude d un logiciel SQL Injection

Bases de Données Relationnelles. Le Modèle Relationnel

1. Base de données SQLite

Application web de gestion de comptes en banques

Java DataBaseConnectivity

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Gestion de stock pour un magasin

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Modélisation et Gestion des bases de données avec mysql workbench

Séance 1 Introduction aux bases de données

Présentation du module Base de données spatio-temporelles

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

BTS/CGO P10 SYSTEME INFORMATION Année

Le Langage De Description De Données(LDD)

MODE OPERATOIRE OPENOFFICE BASE

1 Position du problème

2 Serveurs OLAP et introduction au Data Mining

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Pour les débutants. langage de définition des données

A QUOI SERVENT LES BASES DE DONNÉES?

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Dossier I Découverte de Base d Open Office

Utilisation d Hyperplanning 2011

Bible MySQL! La première version de MySQL est apparue en Cette première version est créée pour un usage personnel à partir de msql.

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Systèmes de Gestion de Bases de Données

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

PROJET 1 : BASE DE DONNÉES REPARTIES

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Transcription:

Introduction aux bases de données Cours Web n o 7 MySQL et PHP Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 7 novembre 2005 S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 1 / 23

Introduction aux bases de données Plan du cours 1 Introduction aux bases de données 2 PHPMyAdmin 3 Requêtes SQL 4 Accéder à MySQL depuis PHP 5 Compléments utiles de PHP 6 Références 7 Application S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 1 / 23

Introduction aux bases de données SGBD SGBD : Système de Gestion de Bases de Données Fournit des méthodes ecaces pour gérer des données qui répondent à une structure (un schéma) précis. Rechercher des données : requêtes Ajouter, supprimer, modier des données : mises à jour Traite de manière rapide de grandes quantités de données. De nombreux produits commerciaux (Oracle, Microsoft SQLServer, IBM DB-2, Microsoft Access... ) et libres (MySQL, PostGreSQL) S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 2 / 23

Introduction aux bases de données Modèle relationnel Modèle le plus répandu et le plus classique. Les données sont organisées en des tables, chacune des colonnes représentant un attribut des données. Example Prénom Nom Date de naissance Jean Dupont 1967-08-07 Pascale Dupuis 1981-09-12 Alfred Lambert NULL Chaque attribut (colonne) est typé. SQL (Structured Query Language) : langage standard de requête et de mise à jour des données (petites variantes suivant les SGBD). S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 3 / 23

Introduction aux bases de données Types de données INT : entier (42) REAL : nombre en virgule ottante (3.14159) VARCHAR(N) : chaîne de caractères ayant au plus N caractères ; les valeurs sont délimitées par des apostrophes ('Ceci est une chaîne'). TEXT : long texte DATE : date (2005-11-08) TIME : temps (09:30:00) S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 4 / 23

Introduction aux bases de données NULL NULL : valeur spéciale Dénote l'absence de valeur. Diérent de 0, de... Une comparaison normale (=,<>) avec NULL renvoie toujours FAUX. IS NULL, IS NOT NULL peuvent être utilisées pour tester une valeur. Chacune des colonnes doit être déclarée comme acceptant ou non la valeur NULL. S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 5 / 23

PHPMyAdmin Plan du cours 1 Introduction aux bases de données 2 PHPMyAdmin 3 Requêtes SQL 4 Accéder à MySQL depuis PHP 5 Compléments utiles de PHP 6 Références 7 Application S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 6 / 23

PHPMyAdmin Présentation générale Interface Web, écrite en PHP, de gestion d'une base de données MySQL Chaque opération réalisée est traduite en un ordre SQL, qui est aché. S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 7 / 23

PHPMyAdmin Fonctionnalités Fonctionnalités création de table insertion de lignes suppression de lignes chargement d'un chier achage du contenu de la table exécution de requêtes SQL suppression de table S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 8 / 23

Requêtes SQL Plan du cours 1 Introduction aux bases de données 2 PHPMyAdmin 3 Requêtes SQL 4 Accéder à MySQL depuis PHP 5 Compléments utiles de PHP 6 Références 7 Application S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 9 / 23

Requêtes SQL Manipulation une base de données Une fois, la table créée, on peut : Insérer des données avec une requête INSERT Sélectionner des données avec une requête SELECT Retirer des données avec une requête DELETE Mettre à jour des données avec une requête UPDATE Remarque : Les commandes de suppression et de mises à jour sont des variantes du SELECT. S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 10 / 23

Requêtes SQL Insérer des données Pour insérer des données Tuple dans la table Table, on utilise une des requêtes suivantes : INSERT INTO Table VALUES Tuple INSERT INTO Table nuplet_d_attibuts VALUES nuplet_de_valeurs Dans le dernier cas, les attributs sans valeurs seront initiés à NULL. Exemple INSERT INTO Films VALUES ('Tootsie',1982,'US') INSERT INTO Films (Titre,Annee) VALUES ('Wallace et Gromit le mystère du lapin-garou',2005) S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 11 / 23

Requêtes SQL Sélectionner des données Pour sélectionner des données nuplet_d_attributs dans la table Table selon une condition Cond, on utilise la requête suivante : SELECT nuplet_d_attributs FROM Table WHERE Cond Exemple SELECT Titre FROM Films WHERE Annee > 1980 S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 12 / 23

SELECT FROM WHERE ORDER BY Requêtes SQL Sélectionner des données * pour sélectionner tous les attributs liste d'attributs séparés par une virgule liste de tables séparés par une virgule clause optionnelle condition basée sur les opérateurs : AND, OR, LIKE, =, <>, >, >=, etc. clause optionnelle noms de champs séparés par une virgule Exemple SELECT * FROM Films WHERE Pays='UK' OR Pays='US' ORDER BY Annee S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 13 / 23

Requêtes SQL Retirer et modier des données Pour retirer les données de la table Table qui correspondent à la condition Cond, on utilise la requête suivante : DELETE FROM Table WHERE Cond Pour mettre à jour les données de la table Table qui correspondent à la condition Cond, on utilise la requête suivante : UPDATE Table SET attribut = nouvelle valeur WHERE Cond Exemple DELETE FROM Films WHERE Annee>2005 UPDATE Films SET Pays='RU' WHERE Pays='UK' S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 14 / 23

Accéder à MySQL depuis PHP Plan du cours 1 Introduction aux bases de données 2 PHPMyAdmin 3 Requêtes SQL 4 Accéder à MySQL depuis PHP 5 Compléments utiles de PHP 6 Références 7 Application S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 15 / 23

Accéder à MySQL depuis PHP mysql_pconnect("localhost", "login", "password") permet d'établir une connexion avec MySQL pour un compte utilisateur "login", "password" et un serveur donné "localhost". Cette fonction renvoie une valeur qui sera ensuite utilisée pour communiquer avec le serveur. mysql_select_db("base",$connexion) permet de se placer dans le contexte de la base de données "base" du serveur $connexion. mysql_query("requête", $connexion) permet d'exécuter la requête "requête" sur le serveur $connexion. Cette fonction renvoie une variable représentant le résultat de la requête. mysql_fetch_objet($resultat) permet de récupérer une des lignes du résultat $resultat, et positionne le curseur sur la ligne suivante. La ligne est représentée sous forme d'un objet objet et on accède aux attributs de cet objet via objet->attribut mysql_error() Renvoie le message de la dernière erreur rencontrée mysql_close($connexion) ferme la connexion $connexion avec MySQL S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 16 / 23

Accéder à MySQL depuis PHP Exemple <?php $connexion=mysql_pconnect("localhost","dupont","a1b2c3d4") ; if(!$connexion) { echo "Desolé, connexion à localhost impossible" ; exit ;} if(!mysql_select_db('ifips',$connexion)) { echo "Desolé, accès à la base ifips impossible" ; exit ;} $resultat= mysql_query("select * FROM Films",$connexion) ; if($resultat){ while($film=mysql_fetch_object($resultat)){ echo "$film->titre est paru en $film->annee <br />" ; } } else{ echo "Erreur dans l'éxécution de la requête.<br />" ; echo "Message de MySQL : ".mysql_error($connexion) ; } mysql_close($connexion) ;?> S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 17 / 23

Compléments utiles de PHP Plan du cours 1 Introduction aux bases de données 2 PHPMyAdmin 3 Requêtes SQL 4 Accéder à MySQL depuis PHP 5 Compléments utiles de PHP 6 Références 7 Application S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 18 / 23

Compléments utiles de PHP htmlentities permet de remplacer tous les caractères réservés de XHTML par l'entité correspondante. Par exemple, le caractère & sera remplacé par &amp ; mysql_escape_string permet d'ajouter les caractères d'échappement dans une chaîne de caractères (utile pour insérer une valeur dans une requête MySQL). stripslashes permet de supprimer les caractères d'échappement dans une chaîne de caractères (utile pour récupérer une valeur d'un résultat de requête MySQL). header("location : nouvelle_page.php") redirige vers la page nouvelle_page.php S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 19 / 23

Références Plan du cours 1 Introduction aux bases de données 2 PHPMyAdmin 3 Requêtes SQL 4 Accéder à MySQL depuis PHP 5 Compléments utiles de PHP 6 Références 7 Application S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 20 / 23

Références http://dev.mysql.com/doc/ http://www.php.net/ Pratique de MySQL et PHP, Philippe Rigaux, O'Reilly S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 21 / 23

Application Plan du cours 1 Introduction aux bases de données 2 PHPMyAdmin 3 Requêtes SQL 4 Accéder à MySQL depuis PHP 5 Compléments utiles de PHP 6 Références 7 Application S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 22 / 23

Application Reproduire le modèle de scripts permettant l'insertion, l'achage et la suppression de lms dans une base de données MySQL, de la manière suivante : 1 Se connecter sur PHPMyAdmin et créer une table Films permettant de stocker un titre, une année (éventuellement NULL) et un pays (écrit comme un code à deux caractères). 2 Utiliser PHPMyAdmin pour ajouter à la main quelques entrées dans la table. 3 Créer un script affichage.php permettant d'acher sous la forme d'un tableau XHTML le contenu de la table Films, trié par titre. 4 Récupérer le formulaire ajout_nouveau_film.html et créer un script insert.php permettant d'insérer un nouvel élément dans la table de lms à partir des paramètres passés par le formulaire. 5 Ajouter à la n de insert.php une redirection vers affichage.php 6 Ajouter au tableau de affichage.php une colonne contenant des formulaires contenant des boutons Supprimer. 7 Écrire le script supprimer.php correspondant. S.-D. Gouraud, P. Senellart (IFIPS) MySQL et PHP 07/11/2005 23 / 23