More Related Content
Similar to Client base de données en PHP5 (20)
Client base de données en PHP5
- 2. Le logo PHP est du domaine public
http://commons.wikimedia.org/wiki/File:PHP-logo.svg
Ce document est licencié sous licence
◦Attribution-NonCommercial-ShareAlike
◦CC BY-NC-SA
Plus de détails:
http://creativecommons.org/licenses/by-nc-sa/3.0/fr/
LightPath 2014© - http://www.jmrenouard.fr
2
- 3. Mysql: API de base
Exécution de requête
PDO: Les bases
PDO: récupération des données
Pattern: CRUD et PDO
LightPath 2014© - http://www.jmrenouard.fr
3
- 5. La connexion
La déconnexion
L’exécution d’un requête
La récupération d’un résultat
LightPath 2014© - http://www.jmrenouard.fr
5
- 7. Mysql_connect
◦connexion physique à la base
Paramètres de mysql_connect
◦Nom de la machine
◦Utilisateur
◦Mot de passe
◦Lien à la base
Mysql_select_db: sélection de la base
◦Nom de la base
◦Utilisation de la base courante
◦Lien à la base
LightPath 2014© - http://www.jmrenouard.fr
7
- 9. mysql_query
$result = mysql_query(« insert into utilisateur values( ‘jm’, ‘Renouard’) »); if (!$result) { die('Requête invalide : ' . mysql_error()); }
LightPath 2014© - http://www.jmrenouard.fr
9
- 10. mysql_fetch_rows :
◦ligne en tableau à index
mysql_fetch_assoc:
◦ligne à tableau à clé
◦Chaque clé est une colonne
mysql_fetch_object
◦Ligne est un objet
◦Chaque colonne est un attribut de l’objet
LightPath 2014© - http://www.jmrenouard.fr
10
- 11. while ($row = mysql_fetch_row($result)) { echo $row[0]; echo $row[1]; echo $row[2]; }
LightPath 2014© - http://www.jmrenouard.fr
11
- 12. while ($row = mysql_fetch_assoc($result)) { echo $row["userid"]; echo $row["fullname"]; echo $row["userstatus"]; }
LightPath 2014© - http://www.jmrenouard.fr
12
- 13. $result = mysql_query("select * from mytable"); while ($row = mysql_fetch_object($result)) { echo $row->user_id; echo $row->fullname; }
LightPath 2014© - http://www.jmrenouard.fr
13
- 15. Ouverture de connexion
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
...
LightPath 2014© - http://www.jmrenouard.fr
15
- 16. Fermeture de connexion
Unset($dbh);
La connexion est supprimée à la fin de vie de l’objet PDO
LightPath 2014© - http://www.jmrenouard.fr
16
- 17. try {
foreach ($dbh->query('SELECT * from CLIENT') as $row) {
print_r($row);
}
} catch (PDOException $e) {
print "Erreur ! : " . $e->getMessage() . "<br/>";
$dbh = null;
die();
}
LightPath 2014© - http://www.jmrenouard.fr
17
- 18. try {
$dbh->beginTransaction();
$dbh->exec("insert into staff (id, first) values (23, 'Joe')");
$dbh->exec("insert into salarychange (id, amount, changedate)
values (23, 50000, NOW())");
$dbh->commit();
} catch (Exception $e) {
echo $e->getMessage();
}
LightPath 2014© - http://www.jmrenouard.fr
18
- 20. Tableau à index
◦Le résultat est affecté dans un tableau à index
Tableau à clé/valeur
◦Le résultat est affecté dans un tableau à clé
◦Chaque clé est le nom d’une colonne
Objet
◦Le résultat est affecté dans un objet existant
◦Le nom de la colonne et de l’attribut doit collé
Classe
◦Le résultat est affecté dans un objet de type stdClass
LightPath 2014© - http://www.jmrenouard.fr
20
- 21. La méthode de sélection
◦$pdo->setFetchMode();
Le paramètre
◦PDO::FETCH_NUM
◦PDO::FETCH_ASSOC
◦PDO:: FETCH_CLASS
◦PDO::FETCH_INTO
LightPath 2014© - http://www.jmrenouard.fr
21
- 22. $obj = new Utilisateur(); $pdo = new PDO (…); $stmt= $pdo->query(‘select * from utilisateur’,
PDO::FETCH_CLASS,
‘Utilisateur‘ ); $utils=array(); while($util = $stmt -> fetch()) { array_push($utils, $util); } $stmt -> closeCursor();
var_dump($utils);
LightPath 2014© - http://www.jmrenouard.fr
22
- 23. $obj = new Utilisateur(); $pdo = new PDO (…); $util=new Utilisateur();
$stmt= $pdo->query(‘select * from utilisateur limit 1’,
PDO::FETCH_INTO,
$util ); $stmt -> fetch();
$stmt -> closeCursor();
var_dump($util);
LightPath 2014© - http://www.jmrenouard.fr
23
- 25. Classe utilitaire permettant les 4 fonctions essentiels d’un objet en BD:
◦C: Create
◦R: read
◦U: Update
◦D: Delete
Il s’agit d’un classe permettant d’interagir facilement avec la base de données.
LightPath 2014© - http://www.jmrenouard.fr
25
- 26. create() : création un objet utilisateur
save($util): sauvegarde de l’objet $util
findBy($attribut, $valeur): recherche de tous les objet utilisateur ayant l’attribut $attribut valant $valeur.
findOne ($attribut, $valeur): idem pour le premier seulement
LightPath 2014© - http://www.jmrenouard.fr
26
- 27. LightPath:
◦Société de conseil et d’ingénierie
◦Formations, Conseil, Audit et mise en oeuvre
◦jmrenouard@lightpath.fr
Jean-Marie RENOUARD
◦jmrenouard@gmail.com
◦Twitter: @jmrenouard
◦http://www.jmrenouard.fr
LightPath 2014© - http://www.jmrenouard.fr
27