<!-- Slide number: 1 -->
PDO
Préparé par : Ouali Mohamed
2015/2016
<!-- Slide number: 2 -->
PDO
PDO : PHP Data Objects
Extension PHP fournissant une interface pour accéder à une base de données
Interface orientée objet
<!-- Slide number: 3 -->
Bases de données supportées
| Bases de données supportées |
| --- |
| FreeTDS / Microsoft SQL Server / Sybase |
| Firebird/Interbase 6 |
| IBM DB2 |
| IBM Informix Dynamic Server |
| MySQL 3.x/4.x/5.x |
| Oracle Call Interface |
| ODBC v3 (IBM DB2, unixODBC et win32 ODBC) |
| PostgreSQL |
| SQLite 3 et SQLite 2 |
| 4D |
<!-- Slide number: 4 -->
Les méthodes
exec(), prepare(), query()
errorCode(), errorInfo()
fetch(), fetchAll(), fetchColumn(), fetchObject(), setFetchMode(), nextRowset()
rowCount(), columnCount(),
Publicité
execute()
Etc.
<!-- Slide number: 5 -->
Se connecter à MySQL
le nom de l'hôte
l'adresse de l'ordinateur où MySQL est installé
Le nom de la base de données
à laquelle on veut se connecter
Le nom d’utilisateur ou login
il permet de vous identifier au niveau du serveur
Le mot de passe
« En local ». le nom de l'hôte sera localhost., le login est root et il n'y a pas de mot de passe.
<!-- Slide number: 6 -->
Se connecter à MySQL avec PDO
Instanciation d'un objet PDO en fournissant les informations nécessaires.
<?php
$bdd = new PDO('mysql:host=localhost;dbname=projet;charset=utf8', 'root', '');
?>
$bdd est un objet qui représente la connexion à la base de données
<!-- Slide number: 7 -->
Exécution d’une requête
PDO supporte de nombreuses méthodes de soumission de requêtes.
$reponse = $bdd->query('Votre requête');
$bdd est l’objet PDO déjà créé
Votre requête est une requête SQL standard (SELECT, …)
$reponse contient maintenant la réponse de MySQL.
<!-- Slide number: 8 -->
Exécution d’une requête
Exemple :
Publicité
$reponse = $bdd->query('SELECT id,nom,email FROM personne');
| id | nom | email |
| --- | --- | --- |
| 1 | Ouali | [email protected] |
| 2 | Hafedh | [email protected] |
| 3 | Abidi | [email protected] |
| 4 | Houcem | [email protected] |
$reponse
<!-- Slide number: 9 -->
Afficher le résultat d'une requête
Pour récupérer une entrée, on prend la réponse de MySQL et on y exécute fetch(), ce qui nous renvoie la première ligne
$donnees = $reponse->fetch();
$donnees est un tableau (array) qui contient champ par champ les valeurs de la première entrée
| id | nom | email |
| --- | --- | --- |
| 1 | Ouali | [email protected] |
$donnees
<!-- Slide number: 10 -->
Afficher le résultat d'une requête
Il faut faire une boucle pour parcourir les entrées une à une.
Chaque fois que vous appelez $reponse->fetch(), vous passez à l'entrée suivante.
La boucle est donc répétée autant de fois qu'il y a d'entrées dans votre table
$reponse = $bdd->query('SELECT nom FROM personne');
while ($donnees = $reponse->fetch())
{
echo $donnees['nom'] . '<br />';
}
<!-- Slide number: 11 -->
Fermeture de la connexion à MySQL
Publicité
La connexion est active tant que l'objet PDO l'est
Pour clore la connexion, vous devez détruire l'objet en vous assurant que toutes ses références sont effacées
$bdd =null ; ou unset($bdd) ;
Si vous ne le faites pas explicitement, PHP fermera automatiquement la connexion lorsque le script arrivera à la fin
<!-- Slide number: 12 -->
Insérer des données
on va utiliser exec() qui est prévue pour exécuter des modifications sur la base de données
$bdd->exec( " INSERT INTO personne (nom, email)
VALUES ('Wissam', '[email protected]')
");
<!-- Slide number: 13 -->
Modifier des données
on va utiliser exec() qui est prévue pour exécuter des modifications sur la base de données
$nb_modifs = $bdd->exec( "UPDATE personne
SET email=‘[email protected]'
WHERE nom=‘Wissam'
");
echo $nb_modifs . ' entrées ont été modifiées !';
<!-- Slide number: 14 -->
Supprimer des données
on va utiliser exec() qui est prévue pour exécuter des modifications sur la base de données
$nb_supp = $bdd->exec( "DELETE FROM personne
WHERE nom=‘Wissam'
");
echo $nb_supp . ' entrées supprimées !'