Vous êtes sur la page 1sur 3

CHAPITRE VIII : PHP / MySQL/PDO

1. Présentation

MySQL est un SGBDR qui enregistre des informations par définition même d'une base de données et
PHP constitue le langage intermédiaire entre cette base et l'utilisateur de la base en question. Dans
ce chapitre nous verrons dans le cas pratique la manipulation d'une base de données. Pour cela nous
allons l'illustrer à partir de divers exemples. Ces derniers seront traités sur phpmyadmin d'easyPHP
ou Wamp.

PDO (PHP Data Objects) est une extension PHP qui permet d'utiliser une base de données en
programmant avec un style orienté objet, et surtout qui permet de s'affranchir du SGBD. PDO
n'utilise pas des fonctions au nom trop explicite comme mysql_query() ou sqlite_query(), ce qui
facilite grandement la migration d'un SGBD à l'autre Création d'une base de données

La première étape de notre traitement sera donc de créer la base de données elle-même. Avant tout
n'oubliez pas de voir si easyPHP ou wamp est bien démarré. Sinon, il faut le faire. Une fois
qu'easyPHP ou wamp est en marche, allez dans l'espace administration et cliquer sur "gestion de
base de données" pour aller vers l'interface phpmyadmin. Dans l'interface phpMyadmin, créer une
base de données en spécifiant son nom.

Création de table : Pour créer une table dans une base de données, il faut lui spécifier un nom.

Spécification des champs

Chaque table d'une base de données comporte des informations relatives à un même sujet et
chaque colonne ou champ d'une table contient des faits individuels relatifs au sujet de la table. En
esquissant les champs des tables, il faut garder à l'esprit qu'il doit y avoir une relation directe entre
chaque champ et les sujets de la table. Il est fortement recommandé de ne pas inclure des données
dérivées ou calculées. C'est à dire des données qui sont les résultats d'une expression. On a toujours
intérêt à stocker les informations de la manière la plus basique et la plus logique possible. Les
champs ont chacun un nom unique et ils sont tous associés à un type de données particulier. Les
champs peuvent donc être de type texte, entier, booléen, etc selon la nature des données qu'ils vont
contenir.

Quelques exemples de types de données en Mysql

de type booléen (vrai / faux)

Dans une table élève par exemple, voici un exemple de ce que pourrait être une liste de champs :
Remarquons que certain type peut avoir une taille / valeur. C'est le cas du type VARCHAR par
exemple. Spécifier un type VARCHAR de taille 30 pour le champ nom signifie que le nombre de
caractère pour un nom ne peut pas dépasser 30.

Exercice: Créer table Elève en SQL

2. Se connecter à une base de données


PDO est le nouveau système de requêtes sur les bases de données avec php5. PDO est orienté objet
et est compatible avec plusieurs types de bases de données (ODBC, Oracle...). Il faut noter que dans
la version 6 de PHP PDO sera le système par défaut d'accès aux bases de données.

L'exploitation de MySQL avec PHP s'effectue en plusieurs étapes :

- ouverture d'une connexion à MySQL et sélection de la base de données

-requête sur la base de données

-exploitation des résultats de la requête

- fermeture de la connexion à MySQL

Exemple
<?php

try{
$db= new PDO('mysql:host=127.0.0.1; dbname=NOMbd', 'root', '');
}
catch(Exception $e){
die('Erreur: '.$e->getMessage());
}
?>
PDO fait la distinction entre deux formes de requêtes : "exec" et "query". En effet pour réaliser une
requête SELECT afin de récupérer des données de la BDD il faut utiliser "query" et pour les trois
autres (INSERT, DELETE et UPDATE) il faut utiliser "exec" .

Exemple

INSERT

$connexion->exec("INSERT INTO membres(champ_login,champ_mdp)


VALUES('login','mot_de_passe')");

UPDATE

$connexion->exec("UPDATE membres SET champ_login='login',champ_mdp='mot_de_passe' WHERE


champ_id_membre = id_membre");

DELETE

$connexion->exec("DELETE FROM membres WHERE champ_id_membre='id_membre'");

Select

$resultats=$connexion->query("SELECT membre FROM membres WHERE


champ_id_membre='id_membre'");

3. Se déconnecter une base de données

Normalement, la fermeture de la connexion se fait automatiquement, mais afin de s'en assurer, on


peut utiliser la méthode closeCursor()

Exemple

$req->closeCursor()

TP: REQUETES PREPAREES