SlideShare une entreprise Scribd logo
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

PPT
Php mysql cours
 
PDF
presentationatelierphpprt2-140314143938-phpapp02.pdf
PPTX
La 2ème partie de la présentation PHP
PDF
Mpdf 3
PDF
PHP #6 : mysql
PPT
PHP_partie_.ppt,php_cours_mathematiques_informatiques
PPT
PHP &amp; MySQL
ODP
Cours PHP 4/4 - Pierre Rudloff
Php mysql cours
 
presentationatelierphpprt2-140314143938-phpapp02.pdf
La 2ème partie de la présentation PHP
Mpdf 3
PHP #6 : mysql
PHP_partie_.ppt,php_cours_mathematiques_informatiques
PHP &amp; MySQL
Cours PHP 4/4 - Pierre Rudloff

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

ODP
Cours PHP 4
PPTX
PPT
PHP - fonctions mysql
PDF
Php 2 - Approfondissement MySQL, PDO et MVC
PPTX
Ce cours est un tutoriel de programmation PHP en accéléré.
PPTX
Pro_Langage_PHP_LES_BASES_DE_DONNEES.pptx
PDF
s3-base de données .pdf
PPT
Petit Aide-mémoire pour la programmation PHP .ppt
PDF
Présentation de DBAL en PHP (Nantes)
PDF
Php Data Object
PDF
Présentation de DBAL en PHP
PDF
Base donnes my_sql
PPT
Créer une base de données avec MySQl.ppt
PPT
Cours Php
PPT
Cours Php
PPTX
Présentaion sur le modéle JDBC JEE .pptx
PPTX
Php & My Sql
PPTX
Php & My Sql
PDF
Mpdf 4
PDF
Marzouk une introduction à jdbc
Cours PHP 4
PHP - fonctions mysql
Php 2 - Approfondissement MySQL, PDO et MVC
Ce cours est un tutoriel de programmation PHP en accéléré.
Pro_Langage_PHP_LES_BASES_DE_DONNEES.pptx
s3-base de données .pdf
Petit Aide-mémoire pour la programmation PHP .ppt
Présentation de DBAL en PHP (Nantes)
Php Data Object
Présentation de DBAL en PHP
Base donnes my_sql
Créer une base de données avec MySQl.ppt
Cours Php
Cours Php
Présentaion sur le modéle JDBC JEE .pptx
Php & My Sql
Php & My Sql
Mpdf 4
Marzouk une introduction à jdbc
Publicité

Plus de YasushiTsubakik (20)

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

Dernier (20)

PDF
Formation SSIAP _ Gestion et contrôle .pdf
PPTX
Le rendez-vous de l'été.pptx Film français
PPTX
Fondamentaux du LMD.pptx pour les etudiants
PDF
🎓 Le Secret des Profs Captivants - 💡 Pourquoi l’oral est stratégique en class...
PPTX
Conception de documents et d'interfaces numériques.pptx
PPTX
Bienvenido slides about the first steps in spanish.pptx
PPTX
Présentation Personal Branding J2025.pptx_20250218_132749_0000.pptx_20250610_...
PPTX
plus que ´parfait--.-.-.-..-.--.-..-.-.-.-.
PPTX
Copie de Présentation Personal Branding J2025.pptx_20250610_120558_0000.pptx
PDF
Bac 2026 - Livre - 🎤 Le Grand Oral - ✍️ Exemples rédigés - Physique ⚡ - Chimi...
DOCX
ENDODONTIE CONSERVATRICE.docx faculté de médecine dentaire
PPTX
SESSION1-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
PPTX
SESSION5-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
PDF
Bac 2026 - Livre - 🎤 Le Grand Oral - ✍️Exemples rédigés - Spécialité: 💻 NSI -...
PPTX
risque environnema et mesure protect.pptx
PPTX
SESSION3-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
PDF
Il y a et les lieux de la ville (négation avec les indéfinis)
PPTX
Le rendez-vous de l'été.pptx Film français
PPT
diaporama pictogrammes de securité2.ppt
PPTX
Présentation Projet Entreprise Minimaliste Moderne Sobre Blanc Noir.pptx
Formation SSIAP _ Gestion et contrôle .pdf
Le rendez-vous de l'été.pptx Film français
Fondamentaux du LMD.pptx pour les etudiants
🎓 Le Secret des Profs Captivants - 💡 Pourquoi l’oral est stratégique en class...
Conception de documents et d'interfaces numériques.pptx
Bienvenido slides about the first steps in spanish.pptx
Présentation Personal Branding J2025.pptx_20250218_132749_0000.pptx_20250610_...
plus que ´parfait--.-.-.-..-.--.-..-.-.-.-.
Copie de Présentation Personal Branding J2025.pptx_20250610_120558_0000.pptx
Bac 2026 - Livre - 🎤 Le Grand Oral - ✍️ Exemples rédigés - Physique ⚡ - Chimi...
ENDODONTIE CONSERVATRICE.docx faculté de médecine dentaire
SESSION1-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
SESSION5-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
Bac 2026 - Livre - 🎤 Le Grand Oral - ✍️Exemples rédigés - Spécialité: 💻 NSI -...
risque environnema et mesure protect.pptx
SESSION3-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
Il y a et les lieux de la ville (négation avec les indéfinis)
Le rendez-vous de l'été.pptx Film français
diaporama pictogrammes de securité2.ppt
Présentation Projet Entreprise Minimaliste Moderne Sobre Blanc Noir.pptx

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() ); ?>