Technologie Web
PHP
Les Bases de données
Pr. Amina GHADBAN
Les bases de données
• Les bases de données possèdent deux grands avantages par
rapport aux autres méthodes de stockage :
✓ Stocker de très grandes quantités de données ;
✓ Récupérer certaines données en particulier simplement et
rapidement.
Pr. Amina GHADBAN - Technologie Web 2
SQL
• SQL est l’abréviation de Structured Query Language ou langage de
requêtes structuré.
• Le SQL est le langage principal utilisé pour accéder aux bases de
données et les manipuler.
• Ce langage est utilisé pour exécuter toutes sortes de requêtes dans
une base de données : récupérer des données, les mettre à jour,
insérer de nouvelles ou même créer de nouvelles bases de données
Pr. Amina GHADBAN - Technologie Web 3
MySQL
• Le MySQL est un système de gestion de bases de données. C’est
un programme qui permet de manipuler simplement les bases de
données.
Pr. Amina GHADBAN - Technologie Web 4
ACCES aux SGBD
• En programmation PHP, il existe 2 méthodes pour mettre en place cette
architecture :
1. accéder nativement à la base par l’intermédiaire de l’API de son
middleware associé,
2. passer par ODBC, l’avantage d’ODBC est de proposer une API
unifiée quelque soit le SGBD utilisé.
Pr. Amina GHADBAN - Technologie Web 5
ACCES aux SGBD
• Un SGBD est un ensemble d'applications qui permet aussi de contrôler
l'accès. Les données sont structurées de la manière suivante :
Pr. Amina GHADBAN - Technologie Web 6
ACCES aux SGBD
• L'utilisation en général d’un SGBD (tel que MySQL) avec PHP
s'effectue en 5 temps :
1. Connexion au serveur de données
2. Sélection de la base de données
3. Requête
4. Exploitation des requêtes
5. Fermeture de la connexion
Pr. Amina GHADBAN - Technologie Web 7
Se connecter à MySQL en PHP
• Pour pouvoir manipuler les bases de données MySQL en PHP
(sans passer par phpMyAdmin), il faut se connecter à MySQL.
• Le PHP met deux API (Application Programming Interface) :
✓ L’extension MySQLi ;
✓ L’extension PDO (PHP Data Objects).
Pr. Amina GHADBAN - Technologie Web 8
Connexion au serveur avec MySQLi orienté objet
Pr. Amina GHADBAN - Technologie Web 9
Connexion au serveur avec MySQLi procédural
Pr. Amina GHADBAN - Technologie Web 10
Connexion au serveur avec PDO
Pr. Amina GHADBAN - Technologie Web 11
Fermer la connexion à la base de données
• Si on utilise MySQLi orienté objet, alors il faudra utiliser la méthode close()
Pr. Amina GHADBAN - Technologie Web 12
Fermer la connexion à la base de données
• Si on utilise MySQLi procédural, on utilisera la fonction mysqli_close()
Pr. Amina GHADBAN - Technologie Web 13
Fermer la connexion à la base de données
Pr. Amina GHADBAN - Technologie Web 14
PDO
• Une fois l’instance de PDO construite, vous effectuez des requêtes avec :
✓ $db->exec($request) : pour modifier la base de données
✓ $db->query($request) : pour extraire des données de la base
Exemples :
<?
$db->exec("CREATE TABLE IF NOT EXISTS users (".
" nickname char(20),".
" password char(50)".
");");
?>
<?
$res = $db->exec('UPDATE users SET password="'.
md5($password).'" WHERE nickname="'.$nickname.'";');
echo "nombre de lignes modifiees = $res";
?>
<?
$res = $db->query("select nickname from users;");
?> Pr. Amina GHADBAN - Technologie Web 15
Création d’une base de données en utilisant PDO
• La requête SQL CREATE DATABASE suivie du nom que l’on souhaite donner à notre
base de données.
Pr. Amina GHADBAN - Technologie Web 16
Création d’une table en utilisant MySQL et PDO
• Les sous types de valeurs les plus courants et les plus utilisés sont :
INT : accepte un nombre entier de 4 octets. La fourchette pour les entiers relatifs
est [-2 147 483 648, 2 147 483 647], celle pour les entiers positifs est [0, 4 294
967 295] ;
VARCHAR : accepte une chaine de longueur variable (entre 0 et 65 535
caractères). La longueur effective réelle de la chaine dépend de la taille
maximum d’une ligne ;
TEXT : accepte une chaine de caractère d’une longueur maximum de 65 535
caractères ;
DATE : accepte une date se situant entre le 1er janvier de l’an 1000 et le 31
décembre de l’an 9999.
Pr. Amina GHADBAN - Technologie Web 17
Création d’une table en utilisant MySQL et PDO
NOT NULL – Signifie que chaque entrée doit contenir une valeur
pour cette colonne. La valeur null n’est pas acceptée ;
UNIQUE – Chacune des valeurs dans la colonne doit être unique
PRIMARY KEY – Est utilisé pour identifier de manière unique chaque
nouvelle entrée dans une table. C’est une combinaison de NOT
NULL et de UNIQUE.
Pr. Amina GHADBAN - Technologie Web 18
Exemple
Pr. Amina GHADBAN - Technologie Web 19
Insérer des données dans une table
• L’instruction SQL INSERT INTO suivie du nom de la table dans laquelle
on souhaite insérer une nouvelle entrée avec sa structure puis le mot
clef VALUES avec les différentes valeurs à insérer.
• La structure de la requête SQL va être la suivante :
INSERT INTO nom_de_table (nom_colonne1,nom_colonne2,
nom_colonne3, …)
VALUES (valeur1, valeur2, valeur3, …)
Pr. Amina GHADBAN - Technologie Web 20
Exemple
Pr. Amina GHADBAN - Technologie Web 21
Insérer plusieurs entrées dans une table
Pr. Amina GHADBAN - Technologie Web 22
Mettre à jour des données dans une table
• L’instruction SQL UPDATE suivie du nom de la table pour mettre à
jour des données dans une table.
• Cette instruction va toujours être accompagnée de SET qui va nous
servir à préciser la colonne à mettre à jour ainsi que la nouvelle
valeur pour la colonne.
Pr. Amina GHADBAN - Technologie Web 23
Exemple
Pr. Amina GHADBAN - Technologie Web 24
La sélection simple des données dans une base de
données
• L’instruction SQL SELECT… FROM
Pr. Amina GHADBAN - Technologie Web 25
Récupérer toutes les valeurs dans une table
• Le sélectionneur * (étoile) avec l’instruction SELECT… FROM.
Pr. Amina GHADBAN - Technologie Web 26
Supprimer des données d’une table
• l’instruction SQL DELETE FROM
Pr. Amina GHADBAN - Technologie Web 27
Supprimer complètement une base de données
• l’instruction SQL DROP DATABASE suivie du nom de la base de données
que l’on souhaite supprimer
Pr. Amina GHADBAN - Technologie Web 28
Injections SQL
Pr. Amina GHADBAN - Technologie Web 29
Injections SQL
Pr. Amina GHADBAN - Technologie Web 30

initiation-cours-Bases-de-Donnees-Php.pdf

  • 1.
    Technologie Web PHP Les Basesde données Pr. Amina GHADBAN
  • 2.
    Les bases dedonnées • Les bases de données possèdent deux grands avantages par rapport aux autres méthodes de stockage : ✓ Stocker de très grandes quantités de données ; ✓ Récupérer certaines données en particulier simplement et rapidement. Pr. Amina GHADBAN - Technologie Web 2
  • 3.
    SQL • SQL estl’abréviation de Structured Query Language ou langage de requêtes structuré. • Le SQL est le langage principal utilisé pour accéder aux bases de données et les manipuler. • Ce langage est utilisé pour exécuter toutes sortes de requêtes dans une base de données : récupérer des données, les mettre à jour, insérer de nouvelles ou même créer de nouvelles bases de données Pr. Amina GHADBAN - Technologie Web 3
  • 4.
    MySQL • Le MySQLest un système de gestion de bases de données. C’est un programme qui permet de manipuler simplement les bases de données. Pr. Amina GHADBAN - Technologie Web 4
  • 5.
    ACCES aux SGBD •En programmation PHP, il existe 2 méthodes pour mettre en place cette architecture : 1. accéder nativement à la base par l’intermédiaire de l’API de son middleware associé, 2. passer par ODBC, l’avantage d’ODBC est de proposer une API unifiée quelque soit le SGBD utilisé. Pr. Amina GHADBAN - Technologie Web 5
  • 6.
    ACCES aux SGBD •Un SGBD est un ensemble d'applications qui permet aussi de contrôler l'accès. Les données sont structurées de la manière suivante : Pr. Amina GHADBAN - Technologie Web 6
  • 7.
    ACCES aux SGBD •L'utilisation en général d’un SGBD (tel que MySQL) avec PHP s'effectue en 5 temps : 1. Connexion au serveur de données 2. Sélection de la base de données 3. Requête 4. Exploitation des requêtes 5. Fermeture de la connexion Pr. Amina GHADBAN - Technologie Web 7
  • 8.
    Se connecter àMySQL en PHP • Pour pouvoir manipuler les bases de données MySQL en PHP (sans passer par phpMyAdmin), il faut se connecter à MySQL. • Le PHP met deux API (Application Programming Interface) : ✓ L’extension MySQLi ; ✓ L’extension PDO (PHP Data Objects). Pr. Amina GHADBAN - Technologie Web 8
  • 9.
    Connexion au serveuravec MySQLi orienté objet Pr. Amina GHADBAN - Technologie Web 9
  • 10.
    Connexion au serveuravec MySQLi procédural Pr. Amina GHADBAN - Technologie Web 10
  • 11.
    Connexion au serveuravec PDO Pr. Amina GHADBAN - Technologie Web 11
  • 12.
    Fermer la connexionà la base de données • Si on utilise MySQLi orienté objet, alors il faudra utiliser la méthode close() Pr. Amina GHADBAN - Technologie Web 12
  • 13.
    Fermer la connexionà la base de données • Si on utilise MySQLi procédural, on utilisera la fonction mysqli_close() Pr. Amina GHADBAN - Technologie Web 13
  • 14.
    Fermer la connexionà la base de données Pr. Amina GHADBAN - Technologie Web 14
  • 15.
    PDO • Une foisl’instance de PDO construite, vous effectuez des requêtes avec : ✓ $db->exec($request) : pour modifier la base de données ✓ $db->query($request) : pour extraire des données de la base Exemples : <? $db->exec("CREATE TABLE IF NOT EXISTS users (". " nickname char(20),". " password char(50)". ");"); ?> <? $res = $db->exec('UPDATE users SET password="'. md5($password).'" WHERE nickname="'.$nickname.'";'); echo "nombre de lignes modifiees = $res"; ?> <? $res = $db->query("select nickname from users;"); ?> Pr. Amina GHADBAN - Technologie Web 15
  • 16.
    Création d’une basede données en utilisant PDO • La requête SQL CREATE DATABASE suivie du nom que l’on souhaite donner à notre base de données. Pr. Amina GHADBAN - Technologie Web 16
  • 17.
    Création d’une tableen utilisant MySQL et PDO • Les sous types de valeurs les plus courants et les plus utilisés sont : INT : accepte un nombre entier de 4 octets. La fourchette pour les entiers relatifs est [-2 147 483 648, 2 147 483 647], celle pour les entiers positifs est [0, 4 294 967 295] ; VARCHAR : accepte une chaine de longueur variable (entre 0 et 65 535 caractères). La longueur effective réelle de la chaine dépend de la taille maximum d’une ligne ; TEXT : accepte une chaine de caractère d’une longueur maximum de 65 535 caractères ; DATE : accepte une date se situant entre le 1er janvier de l’an 1000 et le 31 décembre de l’an 9999. Pr. Amina GHADBAN - Technologie Web 17
  • 18.
    Création d’une tableen utilisant MySQL et PDO NOT NULL – Signifie que chaque entrée doit contenir une valeur pour cette colonne. La valeur null n’est pas acceptée ; UNIQUE – Chacune des valeurs dans la colonne doit être unique PRIMARY KEY – Est utilisé pour identifier de manière unique chaque nouvelle entrée dans une table. C’est une combinaison de NOT NULL et de UNIQUE. Pr. Amina GHADBAN - Technologie Web 18
  • 19.
    Exemple Pr. Amina GHADBAN- Technologie Web 19
  • 20.
    Insérer des donnéesdans une table • L’instruction SQL INSERT INTO suivie du nom de la table dans laquelle on souhaite insérer une nouvelle entrée avec sa structure puis le mot clef VALUES avec les différentes valeurs à insérer. • La structure de la requête SQL va être la suivante : INSERT INTO nom_de_table (nom_colonne1,nom_colonne2, nom_colonne3, …) VALUES (valeur1, valeur2, valeur3, …) Pr. Amina GHADBAN - Technologie Web 20
  • 21.
    Exemple Pr. Amina GHADBAN- Technologie Web 21
  • 22.
    Insérer plusieurs entréesdans une table Pr. Amina GHADBAN - Technologie Web 22
  • 23.
    Mettre à jourdes données dans une table • L’instruction SQL UPDATE suivie du nom de la table pour mettre à jour des données dans une table. • Cette instruction va toujours être accompagnée de SET qui va nous servir à préciser la colonne à mettre à jour ainsi que la nouvelle valeur pour la colonne. Pr. Amina GHADBAN - Technologie Web 23
  • 24.
    Exemple Pr. Amina GHADBAN- Technologie Web 24
  • 25.
    La sélection simpledes données dans une base de données • L’instruction SQL SELECT… FROM Pr. Amina GHADBAN - Technologie Web 25
  • 26.
    Récupérer toutes lesvaleurs dans une table • Le sélectionneur * (étoile) avec l’instruction SELECT… FROM. Pr. Amina GHADBAN - Technologie Web 26
  • 27.
    Supprimer des donnéesd’une table • l’instruction SQL DELETE FROM Pr. Amina GHADBAN - Technologie Web 27
  • 28.
    Supprimer complètement unebase de données • l’instruction SQL DROP DATABASE suivie du nom de la base de données que l’on souhaite supprimer Pr. Amina GHADBAN - Technologie Web 28
  • 29.
    Injections SQL Pr. AminaGHADBAN - Technologie Web 29
  • 30.
    Injections SQL Pr. AminaGHADBAN - Technologie Web 30