Vous êtes sur la page 1sur 30

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

Vous aimerez peut-être aussi