SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
ACCES aux SGBD (1)
En général, la communication entre un programme et une base de données
suit le schéma suivant :
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é.
En plus d'ODBC, PHP gère en accès natifs de nombreux SGBD :
Oracle, Sybase, Informix, MySQL, Adabas, Empress, FilePro, InterBase, mSQL,
PostgreSQL, Solid, SQLServer, Unix Dbm.
PROGRAMME MIDDLEWARE SGBD
ACCES aux SGBD (2)
Un SGBD est un ensemble d'applications permettant de manipuler les
données (ajout, suppression, modification et lecture), mais aussi de
contrôler l'accès. Les données sont structurées de la manière suivante :
Serveur de données
ACCES aux SGBD (3)
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
ACCES aux SGBD (4)
Connexion au serveur de données
Pour se connecter au serveur de données, il existe 2 méthodes :
– Ouverture d'une connexion simple avec la fonction mysql_connect
– Ouverture d'une connexion persistante avec la fonction mysql_pconnect
Remarque : la deuxième méthode diffère de la première par le fait que la
connexion reste active après la fin du script.
<?
if( mysql_connect("ma_base" , $login , $password ) > 0 )
echo "Connexion réussie ! " ;
else
echo "Connexion impossible ! " ;
?>
ACCES aux SGBD (5)
Sélection de la base de données
Pour faire cette sélection, utilisez la fonction mysql_select_db et vous lui
passez en paramètre, le nom de votre base.
<?
if( mysql_select_db("ma_base" ) == True )
echo "Sélection de la base réussie" ;
else
echo "Sélection de la base impossible" ;
?>
Remarque : les étapes sélection et requête peuvent être faites en même
temps, mais il est plus simple surtout pour une seule base, de sélectionner
la table avant de commencer les requêtes. Ainsi, toutes les requêtes à venir
utiliseront cette base par défaut.
ACCES aux SGBD (6)
Envoi d’une requête
Pour envoyer ces requêtes, on peut utiliser 2 fonctions :
– mysql_query dans le cas où la base de données serait déjà sélectionnée
– mysql_db_query dans le cas où l'on voudrait sélectionner la base en même
temps.
<?
$requête = "SELECT * FROM membres WHERE pseudo = 'président' ";
$résultat = mysql_query( $requête );
?>
ACCES aux SGBD (7)
Exploitation des requêtes
Après l'exécution d'une requête de sélection, les données ne sont pas
"affichées", elles sont simplement mises en mémoire, il faut les chercher,
enregistrement par enregistrement, et les afficher avec un minimum de
traitement.
PHP gère un pointeur de résultat, c'est celui qui est pointé qui sera retourné.
Lorsque vous utilisez une fonction de lecture, le pointeur est déplacé sur
l'enregistrement suivant et ainsi de suite jusqu'à ce qu'il n'y en ait plus.
Les fonctions qui retournent un enregistrement sont : mysql_fetch_row,
mysql_fetch_array et mysql_fetch_object et prennent comme paramètre
l'identifiant de la requête.
Les 3 exemples suivants partent d'une requête "SELECT nom, prénom, date
FROM membres."
ACCES aux SGBD (8)
mysql_fetch_row : Cette fonction
retourne un enregistrement sous la
forme d'un tableau simple.
<?
$enregistrement = mysql_fetch_row
($résultat);
// Affiche le champ - nom -
echo $enregistrement[0] . "<br>";
// Affiche le champ - prénom -
echo $enregistrement[1] . "<br> ";
// Affiche le champ - date -
echo $enregistrement[2] . "<br> ";
?>
mysql_fetch_array : Cette fonction
retourne un enregistrement sous la forme
d'un tableau associatif.
<?
$enregistrement = mysql_fetch_array
($résultat);
// Affiche le champ - prénom -
echo $enregistrement["prénom"] .
"<br>";
// Affiche le champ - nom -
echo $enregistrement["nom"] . "<br>";
// Affiche le champ - date -
echo $enregistrement["date"] . "<br>";
?>
ACCES aux SGBD (9)
mysql_fetch_object : Cette fonction retourne un enregistrement sous
forme d'une structure (objet).
<?
$enregistrement = mysql_fetch_object ($résultat );
// Affiche le champ - date -
echo $enregistrement->date . "<br>";
// Affiche le champ - nom -
echo $enregistrement->nom . "<br>";
// Affiche le champ - prénom -
echo $enregistrement->prénom . "<br>";
?>
ACCES aux SGBD (10)
Si il n'y a pas ou plus d'enregistrement à lire, ces fonctions retournent "false."
Pour savoir combien d'enregistrements ont été retournés par la sélection, la
commande mysql_num_rows prend comme paramètre l'identifiant de la
requête.
<?
echo "Il y a " . mysql_num_rows( $résultat ) . " membre(s) ";
while( $enregistrement = mysql_fetch_array( $résultat ))
{
echo $enregistrement['nom'] . " " . $enregistrement['prénom'];
echo " – " . $enregistrement['date'] . "<br>" ;
}
?>
ACCES aux SGBD (11)
Fermeture de la connexion
Vous pouvez fermer la connexion au moyen de la fonction mysql_close, mais il
est bon de savoir que cette opération sera faite lorsque le script se terminera.
C'est donc une opération facultative.
Gestion des erreurs
S’il y a une erreur dans la syntaxe de la requête, on utilise la fonction
mysql_error qui ne prend pas de paramètres.
<?
$résultat = mysql_query( $requête )
or die ("Erreur dans la requête : " . $requête . "<br>Avec l"erreur : " . mysql_error() );
?>

Contenu connexe

Similaire à Développement Web- PHP (partie II).pdf

Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Nicolas Georgeault
 
LP_chapitre3_Creation et gestion_BD_2019.pptx
LP_chapitre3_Creation et gestion_BD_2019.pptxLP_chapitre3_Creation et gestion_BD_2019.pptx
LP_chapitre3_Creation et gestion_BD_2019.pptxFATIMAEZZAHRAEOUBELL
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP EL JAOUARI Ahmed
 
JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java Youness Boukouchi
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database ConnectivityKorteby Farouk
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésNeo4j
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDOAbdoulaye Dieng
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratiqueAbdelouahed Abdou
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
Fmin103 0910 tpjdbc
Fmin103 0910 tpjdbcFmin103 0910 tpjdbc
Fmin103 0910 tpjdbcKarim Amane
 
Les nouveautés de MySQL 5.1
Les nouveautés de MySQL 5.1Les nouveautés de MySQL 5.1
Les nouveautés de MySQL 5.1Olivier DASINI
 
presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfRihabBENLAMINE
 

Similaire à Développement Web- PHP (partie II).pdf (20)

Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Optimisation du stockage share point 2010
Optimisation du stockage share point 2010
 
LP_chapitre3_Creation et gestion_BD_2019.pptx
LP_chapitre3_Creation et gestion_BD_2019.pptxLP_chapitre3_Creation et gestion_BD_2019.pptx
LP_chapitre3_Creation et gestion_BD_2019.pptx
 
Cours jee 1
Cours jee 1Cours jee 1
Cours jee 1
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP
 
Php cours
Php coursPhp cours
Php cours
 
JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java
 
3-android.pdf
3-android.pdf3-android.pdf
3-android.pdf
 
Crud
CrudCrud
Crud
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
 
Elastic serach
Elastic serachElastic serach
Elastic serach
 
Springioc
SpringiocSpringioc
Springioc
 
Jdbc
JdbcJdbc
Jdbc
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratique
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
Php1
Php1Php1
Php1
 
Fmin103 0910 tpjdbc
Fmin103 0910 tpjdbcFmin103 0910 tpjdbc
Fmin103 0910 tpjdbc
 
Les nouveautés de MySQL 5.1
Les nouveautés de MySQL 5.1Les nouveautés de MySQL 5.1
Les nouveautés de MySQL 5.1
 
presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdf
 

Plus de YasushiTsubakik

UML-DiagrammesSequence.pdf
UML-DiagrammesSequence.pdfUML-DiagrammesSequence.pdf
UML-DiagrammesSequence.pdfYasushiTsubakik
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfYasushiTsubakik
 
UML-DiagrammesEtatsTransitions.pdf
UML-DiagrammesEtatsTransitions.pdfUML-DiagrammesEtatsTransitions.pdf
UML-DiagrammesEtatsTransitions.pdfYasushiTsubakik
 
UML-DiagrammesEtatsTransitionsSuite.pdf
UML-DiagrammesEtatsTransitionsSuite.pdfUML-DiagrammesEtatsTransitionsSuite.pdf
UML-DiagrammesEtatsTransitionsSuite.pdfYasushiTsubakik
 
Support de cours Conception orientée objets - partie 2.pdf
Support de cours Conception orientée objets - partie 2.pdfSupport de cours Conception orientée objets - partie 2.pdf
Support de cours Conception orientée objets - partie 2.pdfYasushiTsubakik
 
UML-AssociationsDiverses-Heritage.pdf
UML-AssociationsDiverses-Heritage.pdfUML-AssociationsDiverses-Heritage.pdf
UML-AssociationsDiverses-Heritage.pdfYasushiTsubakik
 
1-UML CasUtilisation.pdf
1-UML CasUtilisation.pdf1-UML CasUtilisation.pdf
1-UML CasUtilisation.pdfYasushiTsubakik
 
UML-diagramme de classe Operations.pdf
UML-diagramme de classe Operations.pdfUML-diagramme de classe Operations.pdf
UML-diagramme de classe Operations.pdfYasushiTsubakik
 
Développement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdfDéveloppement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdfYasushiTsubakik
 
Support de Cours Gestion de projets (partie 2) - Tableau de bord.pdf
Support de Cours Gestion de projets (partie 2) - Tableau de bord.pdfSupport de Cours Gestion de projets (partie 2) - Tableau de bord.pdf
Support de Cours Gestion de projets (partie 2) - Tableau de bord.pdfYasushiTsubakik
 
Planification de projet.pdf
Planification de projet.pdfPlanification de projet.pdf
Planification de projet.pdfYasushiTsubakik
 
gestion projet Planification PERT.pdf
gestion projet Planification PERT.pdfgestion projet Planification PERT.pdf
gestion projet Planification PERT.pdfYasushiTsubakik
 
Introduction Cours Gestion de projets.pdf
Introduction Cours Gestion de projets.pdfIntroduction Cours Gestion de projets.pdf
Introduction Cours Gestion de projets.pdfYasushiTsubakik
 
Les critères de performance.pdf
Les critères de performance.pdfLes critères de performance.pdf
Les critères de performance.pdfYasushiTsubakik
 
Diagramme des cas d’utilisation.pdf
 Diagramme des cas d’utilisation.pdf Diagramme des cas d’utilisation.pdf
Diagramme des cas d’utilisation.pdfYasushiTsubakik
 

Plus de YasushiTsubakik (20)

POO-JAVA-partie3.pdf
POO-JAVA-partie3.pdfPOO-JAVA-partie3.pdf
POO-JAVA-partie3.pdf
 
POO-JAVA-partie-2.pdf
POO-JAVA-partie-2.pdfPOO-JAVA-partie-2.pdf
POO-JAVA-partie-2.pdf
 
POO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdfPOO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdf
 
UML-DiagrammesSequence.pdf
UML-DiagrammesSequence.pdfUML-DiagrammesSequence.pdf
UML-DiagrammesSequence.pdf
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdf
 
UML-DiagrammesEtatsTransitions.pdf
UML-DiagrammesEtatsTransitions.pdfUML-DiagrammesEtatsTransitions.pdf
UML-DiagrammesEtatsTransitions.pdf
 
UML-DiagrammesEtatsTransitionsSuite.pdf
UML-DiagrammesEtatsTransitionsSuite.pdfUML-DiagrammesEtatsTransitionsSuite.pdf
UML-DiagrammesEtatsTransitionsSuite.pdf
 
UML-Scenarios.pdf
UML-Scenarios.pdfUML-Scenarios.pdf
UML-Scenarios.pdf
 
Support de cours Conception orientée objets - partie 2.pdf
Support de cours Conception orientée objets - partie 2.pdfSupport de cours Conception orientée objets - partie 2.pdf
Support de cours Conception orientée objets - partie 2.pdf
 
UML-Contraintes.pdf
UML-Contraintes.pdfUML-Contraintes.pdf
UML-Contraintes.pdf
 
UML-AssociationsDiverses-Heritage.pdf
UML-AssociationsDiverses-Heritage.pdfUML-AssociationsDiverses-Heritage.pdf
UML-AssociationsDiverses-Heritage.pdf
 
1-UML CasUtilisation.pdf
1-UML CasUtilisation.pdf1-UML CasUtilisation.pdf
1-UML CasUtilisation.pdf
 
UML-diagramme de classe Operations.pdf
UML-diagramme de classe Operations.pdfUML-diagramme de classe Operations.pdf
UML-diagramme de classe Operations.pdf
 
Développement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdfDéveloppement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdf
 
Support de Cours Gestion de projets (partie 2) - Tableau de bord.pdf
Support de Cours Gestion de projets (partie 2) - Tableau de bord.pdfSupport de Cours Gestion de projets (partie 2) - Tableau de bord.pdf
Support de Cours Gestion de projets (partie 2) - Tableau de bord.pdf
 
Planification de projet.pdf
Planification de projet.pdfPlanification de projet.pdf
Planification de projet.pdf
 
gestion projet Planification PERT.pdf
gestion projet Planification PERT.pdfgestion projet Planification PERT.pdf
gestion projet Planification PERT.pdf
 
Introduction Cours Gestion de projets.pdf
Introduction Cours Gestion de projets.pdfIntroduction Cours Gestion de projets.pdf
Introduction Cours Gestion de projets.pdf
 
Les critères de performance.pdf
Les critères de performance.pdfLes critères de performance.pdf
Les critères de performance.pdf
 
Diagramme des cas d’utilisation.pdf
 Diagramme des cas d’utilisation.pdf Diagramme des cas d’utilisation.pdf
Diagramme des cas d’utilisation.pdf
 

Dernier

Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEgharebikram98
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 

Dernier (14)

Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 

Développement Web- PHP (partie II).pdf

  • 1. ACCES aux SGBD (1) En général, la communication entre un programme et une base de données suit le schéma suivant : 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é. En plus d'ODBC, PHP gère en accès natifs de nombreux SGBD : Oracle, Sybase, Informix, MySQL, Adabas, Empress, FilePro, InterBase, mSQL, PostgreSQL, Solid, SQLServer, Unix Dbm. PROGRAMME MIDDLEWARE SGBD
  • 2. ACCES aux SGBD (2) Un SGBD est un ensemble d'applications permettant de manipuler les données (ajout, suppression, modification et lecture), mais aussi de contrôler l'accès. Les données sont structurées de la manière suivante : Serveur de données
  • 3. ACCES aux SGBD (3) 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
  • 4. ACCES aux SGBD (4) Connexion au serveur de données Pour se connecter au serveur de données, il existe 2 méthodes : – Ouverture d'une connexion simple avec la fonction mysql_connect – Ouverture d'une connexion persistante avec la fonction mysql_pconnect Remarque : la deuxième méthode diffère de la première par le fait que la connexion reste active après la fin du script. <? if( mysql_connect("ma_base" , $login , $password ) > 0 ) echo "Connexion réussie ! " ; else echo "Connexion impossible ! " ; ?>
  • 5. ACCES aux SGBD (5) Sélection de la base de données Pour faire cette sélection, utilisez la fonction mysql_select_db et vous lui passez en paramètre, le nom de votre base. <? if( mysql_select_db("ma_base" ) == True ) echo "Sélection de la base réussie" ; else echo "Sélection de la base impossible" ; ?> Remarque : les étapes sélection et requête peuvent être faites en même temps, mais il est plus simple surtout pour une seule base, de sélectionner la table avant de commencer les requêtes. Ainsi, toutes les requêtes à venir utiliseront cette base par défaut.
  • 6. ACCES aux SGBD (6) Envoi d’une requête Pour envoyer ces requêtes, on peut utiliser 2 fonctions : – mysql_query dans le cas où la base de données serait déjà sélectionnée – mysql_db_query dans le cas où l'on voudrait sélectionner la base en même temps. <? $requête = "SELECT * FROM membres WHERE pseudo = 'président' "; $résultat = mysql_query( $requête ); ?>
  • 7. ACCES aux SGBD (7) Exploitation des requêtes Après l'exécution d'une requête de sélection, les données ne sont pas "affichées", elles sont simplement mises en mémoire, il faut les chercher, enregistrement par enregistrement, et les afficher avec un minimum de traitement. PHP gère un pointeur de résultat, c'est celui qui est pointé qui sera retourné. Lorsque vous utilisez une fonction de lecture, le pointeur est déplacé sur l'enregistrement suivant et ainsi de suite jusqu'à ce qu'il n'y en ait plus. Les fonctions qui retournent un enregistrement sont : mysql_fetch_row, mysql_fetch_array et mysql_fetch_object et prennent comme paramètre l'identifiant de la requête. Les 3 exemples suivants partent d'une requête "SELECT nom, prénom, date FROM membres."
  • 8. ACCES aux SGBD (8) mysql_fetch_row : Cette fonction retourne un enregistrement sous la forme d'un tableau simple. <? $enregistrement = mysql_fetch_row ($résultat); // Affiche le champ - nom - echo $enregistrement[0] . "<br>"; // Affiche le champ - prénom - echo $enregistrement[1] . "<br> "; // Affiche le champ - date - echo $enregistrement[2] . "<br> "; ?> mysql_fetch_array : Cette fonction retourne un enregistrement sous la forme d'un tableau associatif. <? $enregistrement = mysql_fetch_array ($résultat); // Affiche le champ - prénom - echo $enregistrement["prénom"] . "<br>"; // Affiche le champ - nom - echo $enregistrement["nom"] . "<br>"; // Affiche le champ - date - echo $enregistrement["date"] . "<br>"; ?>
  • 9. ACCES aux SGBD (9) mysql_fetch_object : Cette fonction retourne un enregistrement sous forme d'une structure (objet). <? $enregistrement = mysql_fetch_object ($résultat ); // Affiche le champ - date - echo $enregistrement->date . "<br>"; // Affiche le champ - nom - echo $enregistrement->nom . "<br>"; // Affiche le champ - prénom - echo $enregistrement->prénom . "<br>"; ?>
  • 10. ACCES aux SGBD (10) Si il n'y a pas ou plus d'enregistrement à lire, ces fonctions retournent "false." Pour savoir combien d'enregistrements ont été retournés par la sélection, la commande mysql_num_rows prend comme paramètre l'identifiant de la requête. <? echo "Il y a " . mysql_num_rows( $résultat ) . " membre(s) "; while( $enregistrement = mysql_fetch_array( $résultat )) { echo $enregistrement['nom'] . " " . $enregistrement['prénom']; echo " – " . $enregistrement['date'] . "<br>" ; } ?>
  • 11. ACCES aux SGBD (11) Fermeture de la connexion Vous pouvez fermer la connexion au moyen de la fonction mysql_close, mais il est bon de savoir que cette opération sera faite lorsque le script se terminera. C'est donc une opération facultative. Gestion des erreurs S’il y a une erreur dans la syntaxe de la requête, on utilise la fonction mysql_error qui ne prend pas de paramètres. <? $résultat = mysql_query( $requête ) or die ("Erreur dans la requête : " . $requête . "<br>Avec l"erreur : " . mysql_error() ); ?>