SlideShare une entreprise Scribd logo
Jean-Marie Renouard 
LightPath 2014©
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
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
LightPath 2014© - http://www.jmrenouard.fr 
4
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
LightPath 2014© - http://www.jmrenouard.fr 
6
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
mysql_close 
déconnexion physique à la base 
libérer les ressources des requêtes. 
mysql_free_result 
LightPath 2014© - http://www.jmrenouard.fr 
8
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
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
while ($row = mysql_fetch_row($result)) { echo $row[0]; echo $row[1]; echo $row[2]; } 
LightPath 2014© - http://www.jmrenouard.fr 
11
while ($row = mysql_fetch_assoc($result)) { echo $row["userid"]; echo $row["fullname"]; echo $row["userstatus"]; } 
LightPath 2014© - http://www.jmrenouard.fr 
12
$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
LightPath 2014© - http://www.jmrenouard.fr 
14
Ouverture de connexion 
try { 
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); 
... 
LightPath 2014© - http://www.jmrenouard.fr 
15
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
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
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
LightPath 2014© - http://www.jmrenouard.fr 
19
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
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
$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
$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
LightPath 2014© - http://www.jmrenouard.fr 
24
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
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
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

Contenu connexe

Tendances

Email et PHP5
Email et PHP5Email et PHP5
Email et PHP5
Jean-Marie Renouard
 
Le client FTP de PHP5
Le client FTP de PHP5Le client FTP de PHP5
Le client FTP de PHP5
Jean-Marie Renouard
 
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHPSécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
Jean-Marie Renouard
 
MVC / Frameworks PHP
MVC / Frameworks PHPMVC / Frameworks PHP
MVC / Frameworks PHP
Jean-Marie Renouard
 
SQL et MySQL
SQL et MySQLSQL et MySQL
SQL et MySQL
Jean-Marie Renouard
 
Javascript et JQuery
Javascript et JQueryJavascript et JQuery
Javascript et JQuery
Jean-Marie Renouard
 
Les structures de données PHP5
Les structures de données PHP5Les structures de données PHP5
Les structures de données PHP5
Jean-Marie Renouard
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Abdoulaye Dieng
 
Pratique de la programmation en go
Pratique de la programmation en goPratique de la programmation en go
Pratique de la programmation en go
kader15
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
guest6c050e
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Pierre Faure
 
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLTrucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
Damien Seguy
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonyVincent Composieux
 
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
Christophe Villeneuve
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !
Engineor
 
PHP5 - POO
PHP5 - POOPHP5 - POO
PHP5 - POOmazenovi
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
Hugo Hamon
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
kadzaki
 
Bases de PHP - Partie 1
Bases de PHP - Partie 1Bases de PHP - Partie 1
Bases de PHP - Partie 1
Régis Lutter
 

Tendances (19)

Email et PHP5
Email et PHP5Email et PHP5
Email et PHP5
 
Le client FTP de PHP5
Le client FTP de PHP5Le client FTP de PHP5
Le client FTP de PHP5
 
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHPSécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
 
MVC / Frameworks PHP
MVC / Frameworks PHPMVC / Frameworks PHP
MVC / Frameworks PHP
 
SQL et MySQL
SQL et MySQLSQL et MySQL
SQL et MySQL
 
Javascript et JQuery
Javascript et JQueryJavascript et JQuery
Javascript et JQuery
 
Les structures de données PHP5
Les structures de données PHP5Les structures de données PHP5
Les structures de données PHP5
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
Pratique de la programmation en go
Pratique de la programmation en goPratique de la programmation en go
Pratique de la programmation en go
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLTrucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
 
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !
 
PHP5 - POO
PHP5 - POOPHP5 - POO
PHP5 - POO
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
 
Bases de PHP - Partie 1
Bases de PHP - Partie 1Bases de PHP - Partie 1
Bases de PHP - Partie 1
 

En vedette

Ssh cookbook
Ssh cookbookSsh cookbook
Ssh cookbook
Jean-Marie Renouard
 
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur LinuxManuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
Jean-Marie Renouard
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
Jean-Marie Renouard
 
Cours php
Cours phpCours php
Cours php
csskaled
 
Mvc (5)
Mvc (5)Mvc (5)
La sécurité et php
La sécurité et phpLa sécurité et php
La sécurité et php
neuros
 
Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)
neuros
 
rapport_stage_issame
rapport_stage_issamerapport_stage_issame
rapport_stage_issameAMAL Issame
 
Introduction au webmapping au-dela de google maps
Introduction au webmapping  au-dela de google mapsIntroduction au webmapping  au-dela de google maps
Introduction au webmapping au-dela de google mapsVisionGÉOMATIQUE2012
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
Mickael Couzinet
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVCNathaniel Richand
 
Zf2++ Quelques idées sur l'avenir proche de ZF2
Zf2++ Quelques idées sur l'avenir proche de ZF2Zf2++ Quelques idées sur l'avenir proche de ZF2
Zf2++ Quelques idées sur l'avenir proche de ZF2
Sophie Beaupuis
 
Click and deploy - Continuous delivery avec Zend Server et Jenknins
Click and deploy - Continuous delivery avec Zend Server et JenkninsClick and deploy - Continuous delivery avec Zend Server et Jenknins
Click and deploy - Continuous delivery avec Zend Server et JenkninsSophie Beaupuis
 
How Much Further Will Internet Stocks Fall? (Share Price Performance)
How Much Further Will Internet Stocks Fall? (Share Price Performance)How Much Further Will Internet Stocks Fall? (Share Price Performance)
How Much Further Will Internet Stocks Fall? (Share Price Performance)
Mahesh Vellanki
 

En vedette (14)

Ssh cookbook
Ssh cookbookSsh cookbook
Ssh cookbook
 
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur LinuxManuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
 
Cours php
Cours phpCours php
Cours php
 
Mvc (5)
Mvc (5)Mvc (5)
Mvc (5)
 
La sécurité et php
La sécurité et phpLa sécurité et php
La sécurité et php
 
Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)
 
rapport_stage_issame
rapport_stage_issamerapport_stage_issame
rapport_stage_issame
 
Introduction au webmapping au-dela de google maps
Introduction au webmapping  au-dela de google mapsIntroduction au webmapping  au-dela de google maps
Introduction au webmapping au-dela de google maps
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
 
Zf2++ Quelques idées sur l'avenir proche de ZF2
Zf2++ Quelques idées sur l'avenir proche de ZF2Zf2++ Quelques idées sur l'avenir proche de ZF2
Zf2++ Quelques idées sur l'avenir proche de ZF2
 
Click and deploy - Continuous delivery avec Zend Server et Jenknins
Click and deploy - Continuous delivery avec Zend Server et JenkninsClick and deploy - Continuous delivery avec Zend Server et Jenknins
Click and deploy - Continuous delivery avec Zend Server et Jenknins
 
How Much Further Will Internet Stocks Fall? (Share Price Performance)
How Much Further Will Internet Stocks Fall? (Share Price Performance)How Much Further Will Internet Stocks Fall? (Share Price Performance)
How Much Further Will Internet Stocks Fall? (Share Price Performance)
 

Similaire à Client base de données en PHP5

Présentation de DBAL en PHP
Présentation de DBAL en PHPPrésentation de DBAL en PHP
Présentation de DBAL en PHP
Mickael Perraud
 
Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)
Mickael Perraud
 
Formation php pdo
Formation php pdoFormation php pdo
Formation php pdo
Souhaibou Salla
 
Php Data Object
Php Data ObjectPhp Data Object
Php Data Object
Mehdi EL KRARI
 
Php 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7
neuros
 
Php 7.4 2020-01-28 - afup
Php 7.4   2020-01-28 - afupPhp 7.4   2020-01-28 - afup
Php 7.4 2020-01-28 - afup
Julien Vinber
 
SQL_Python.pdf
SQL_Python.pdfSQL_Python.pdf
SQL_Python.pdf
RouaissiRidha
 
Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?
Mickael Perraud
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
Normandy JUG
 
PHP 5 pour les développeurs Java
PHP 5 pour les développeurs JavaPHP 5 pour les développeurs Java
PHP 5 pour les développeurs Java
Mehdi EL KRARI
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPjulien pauli
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Xavier NOPRE
 
Cours PHP PDO intégrale afin de mieux appréhender la nouvelle librairie
Cours PHP PDO intégrale afin de mieux appréhender la nouvelle librairieCours PHP PDO intégrale afin de mieux appréhender la nouvelle librairie
Cours PHP PDO intégrale afin de mieux appréhender la nouvelle librairie
afdoumbia
 
démonstration code source site web ecole.docx
démonstration code source site web ecole.docxdémonstration code source site web ecole.docx
démonstration code source site web ecole.docx
VincentBweka
 
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...Fabien Potencier
 
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech NantesOuvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
corsonr
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
Christophe Villeneuve
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
Club Scientifique de l'ESI - CSE
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
Aurelien Navarre
 

Similaire à Client base de données en PHP5 (20)

Présentation de DBAL en PHP
Présentation de DBAL en PHPPrésentation de DBAL en PHP
Présentation de DBAL en PHP
 
Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)
 
Formation php pdo
Formation php pdoFormation php pdo
Formation php pdo
 
Php Data Object
Php Data ObjectPhp Data Object
Php Data Object
 
Php 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7
 
Php 7.4 2020-01-28 - afup
Php 7.4   2020-01-28 - afupPhp 7.4   2020-01-28 - afup
Php 7.4 2020-01-28 - afup
 
SQL_Python.pdf
SQL_Python.pdfSQL_Python.pdf
SQL_Python.pdf
 
Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
 
PHP 5 pour les développeurs Java
PHP 5 pour les développeurs JavaPHP 5 pour les développeurs Java
PHP 5 pour les développeurs Java
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
 
Cours PHP PDO intégrale afin de mieux appréhender la nouvelle librairie
Cours PHP PDO intégrale afin de mieux appréhender la nouvelle librairieCours PHP PDO intégrale afin de mieux appréhender la nouvelle librairie
Cours PHP PDO intégrale afin de mieux appréhender la nouvelle librairie
 
démonstration code source site web ecole.docx
démonstration code source site web ecole.docxdémonstration code source site web ecole.docx
démonstration code source site web ecole.docx
 
Zf2 ce-qui-va-changer
Zf2 ce-qui-va-changerZf2 ce-qui-va-changer
Zf2 ce-qui-va-changer
 
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
Découpler votre code pour assurer la réutilisabilité et la maintenabilite ...
 
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech NantesOuvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
 

Dernier

Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Institut de l'Elevage - Idele
 
Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
Institut de l'Elevage - Idele
 
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdfpdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
Elisée Ndjabu
 
Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
Institut de l'Elevage - Idele
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
Institut de l'Elevage - Idele
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
Institut de l'Elevage - Idele
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
Institut de l'Elevage - Idele
 
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Institut de l'Elevage - Idele
 
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdfCOURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
sieousse95
 
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Institut de l'Elevage - Idele
 
Presentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptxPresentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptx
imed53
 

Dernier (11)

Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
 
Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
 
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdfpdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
 
Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
 
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
 
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdfCOURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
 
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
 
Presentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptxPresentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptx
 

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
  • 4. LightPath 2014© - http://www.jmrenouard.fr 4
  • 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
  • 6. LightPath 2014© - http://www.jmrenouard.fr 6
  • 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
  • 8. mysql_close déconnexion physique à la base libérer les ressources des requêtes. mysql_free_result LightPath 2014© - http://www.jmrenouard.fr 8
  • 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
  • 14. LightPath 2014© - http://www.jmrenouard.fr 14
  • 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
  • 19. LightPath 2014© - http://www.jmrenouard.fr 19
  • 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
  • 24. LightPath 2014© - http://www.jmrenouard.fr 24
  • 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