info:bdd:sqlphp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
info:bdd:sqlphp [2021/08/11 09:19] – modification externe 127.0.0.1info:bdd:sqlphp [2024/08/28 17:17] (Version actuelle) – [2.4 Fermeture de la connexion] phil
Ligne 1: Ligne 1:
-{{ :suivant.png?nolink&30|}} {{ :retour.png?nolink&30|}} [[info:bdd:accueilbdd|{{ :iconemaison.jpg?nolink&30|Sommaire Bdd}}]]+[[info:bdd:accueilbdd|{{ :iconemaison.jpg?nolink&25|Sommaire Bdd}}]]
  
-=====MySQL et PHP =====+===== BDD - MySQL et PHP =====
-{{ :web:phpico.png?nolink&100|}}{{ :informatique:bdd:iconesql.jpg?nolink&100|}}+
  
-[Mise à jour le 10/8/2021]+[Mise à jour le 28/8/2024]
  
 ** Sources ** ** Sources **
Ligne 10: Ligne 9:
   * Tutoriel sur le site **Openclassrooms** : <html><a href="https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/914293-lisez-des-donnees" target="_blank">Concevez votre site web avec PHP et MySQL</a></html>   * Tutoriel sur le site **Openclassrooms** : <html><a href="https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/914293-lisez-des-donnees" target="_blank">Concevez votre site web avec PHP et MySQL</a></html>
  
-**Mot-clé** : SGBD, base, table, enregistrement, champ, requêtes, SQL.+**Mots-clés** : SGBD, base, table, enregistrement, champ, requêtes, SQL.
  
 ---- ----
  
 {{ :web:219973.png?nolink&350|}} {{ :web:219973.png?nolink&350|}}
-===== A. Introduction =====+==== 1. Introduction ====
 En PHP, on se connecte à une base de données avec les méthodes suivantes: En PHP, on se connecte à une base de données avec les méthodes suivantes:
   - Avec l'extension mysqli_ (modèle procédural lié à MySQL)   - Avec l'extension mysqli_ (modèle procédural lié à MySQL)
Ligne 28: Ligne 27:
 {{ :web:extable.png?nolink |}} {{ :web:extable.png?nolink |}}
  
-<note tip>On utilise le SGBD MySQL pour les exemples de la base //test//. La table jeux_video peut être téléchargé [[https://webge.fr/doc/wikis/code/web/WEB_TABLE_MSQL_jeux_video.zip|ici]].</note+<callout type="tip" title="jeux_video" icon="true">On utilise le SGBD MySQL pour les exemples de la base //test//. La table jeux_video peut être téléchargé [[https://webge.fr/doc/wikis/code/web/WEB_TABLE_MSQL_jeux_video.zip|ici]].</callout> 
-===== B. Accès à une base de données MySQL avec PHP =====+ 
 +==== 2. Accès à une base de données MySQL avec PHP ====
  L'exploitation d'une base de données se fait à travers les actions suivantes :  L'exploitation d'une base de données se fait à travers les actions suivantes :
   - **Connexion** à la base   - **Connexion** à la base
Ligne 35: Ligne 35:
   - **Traitement** du résultat des requêtes   - **Traitement** du résultat des requêtes
   - **Fermeture** de la connexion   - **Fermeture** de la connexion
-===1Connexion à la base ====+\\ 
 +=== 2.1 Connexion à la base ===
 {{ :web:cobjetbdd.png?nolink&100|}} {{ :web:cobjetbdd.png?nolink&100|}}
  
-<note>La connexion à la base se fait **une seule fois** en créant un **objet** de la classe PDO.</note>+<callout type="primary" title="Connexion" icon="true">La connexion à la base se fait **une seule fois** en créant un **objet** de la classe PDO.</callout>
  
   * //Syntaxe// \\ nomConnect = **new PDO**('mysql:host=**$host** dbname=**$base**',user,pass); \\   * //Syntaxe// \\ nomConnect = **new PDO**('mysql:host=**$host** dbname=**$base**',user,pass); \\
  
-<note>L'objet //$<nomConnect>// représente la connexion au serveur. Il est utilisé pour toutes les opérations à effectuer sur la base.</note>+<callout type="default" title="Objet PDO" icon="true">L'objet //$<nomConnect>// représente la connexion au serveur. Il est utilisé pour toutes les opérations à effectuer sur la base.</callout>
  
   * //Exemple 1 // : Connexion à la base //test// avec le login //root//, sans mot de passe et sans la gestion des erreurs   * //Exemple 1 // : Connexion à la base //test// avec le login //root//, sans mot de passe et sans la gestion des erreurs
Ligne 49: Ligne 50:
 $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');  $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', ''); 
 </code> </code>
-\\+
   * //Exemple 2// : Même connexion avec la gestion des d'erreurs   * //Exemple 2// : Même connexion avec la gestion des d'erreurs
 <code php *.php> <code php *.php>
Ligne 62: Ligne 63:
 </code> </code>
  
-==== 2. Envoi d'une requête ===+=== 2.Envoi d'une requête ===
-<note>L'information liée au bon fonctionnement de la requête ou son résultat sont placés dans une variable pour être traités.</note>+
  
-=== Cas 1 === +<callout type="default" title="Variable" icon="true">L'information liée au bon fonctionnement de la requête ou son résultat sont placés dans une variable pour être traités.</callout> 
-Si la requête **ne retourne pas de résultat** (INSERT, UPDATE, DELETE, etc.), on utilise la méthode //exec()//.+ 
 +**Cas 1** - Si la requête **ne retourne pas de résultat** (INSERT, UPDATE, DELETE, etc.), on utilise la méthode //exec()//.
  
   * //Syntaxe// \\ //integer// nomConnect **->** exec(//string// requete) \\ nomvar = nomConnect **->** exec(//string// requete)   * //Syntaxe// \\ //integer// nomConnect **->** exec(//string// requete) \\ nomvar = nomConnect **->** exec(//string// requete)
  
-<note>**exec()** retourne un entier contenant le nombre de lignes concernées par la requête.</note>+<callout type="primary" title="Requête" icon="true">**exec()** retourne un entier contenant le nombre de lignes concernées par la requête.</callout>
  
   * //Exemple// : modification du possesseur de  la console NES identifiée par ID=1 (Initialement Florent)   * //Exemple// : modification du possesseur de  la console NES identifiée par ID=1 (Initialement Florent)
Ligne 79: Ligne 80:
 {{ :web:ex2table.png?nolink |}} {{ :web:ex2table.png?nolink |}}
  
-=== Cas 2 === +**Cas 2** - Si la requête **retourne un résultat** (SELECT, etc.), on utilise la méthode //query()//.
-Si la requête **retourne un résultat** (SELECT, etc.), on utilise la méthode //query()//.+
  
   * //Syntaxe// \\ //object// nomConnect **->** query(//string// requete) \\ nomResultat = nomConnect **->** query(//string// requete)    * //Syntaxe// \\ //object// nomConnect **->** query(//string// requete) \\ nomResultat = nomConnect **->** query(//string// requete) 
  
-<note>Retourne FALSE en cas d'erreur ou un objet représentant l'ensemble des lignes de résultat.</note>+<callout type="default" title="Erreur" icon="true">Retourne FALSE en cas d'erreur ou un objet représentant l'ensemble des lignes de résultat.</callout>
  
   * //Exemple// : //reponse// reçoit le résultat de la requête    * //Exemple// : //reponse// reçoit le résultat de la requête 
Ligne 95: Ligne 95:
     * The Rocketeer - Michel - 2     * The Rocketeer - Michel - 2
     * Ice Hockey - Michel - 7     * Ice Hockey - Michel - 7
 +\\
 +=== 2.3 Traitement du résultat de la requête ===
 +  * **Insertion, suppression, mise à jour**
  
-==== 3. Traitement du résultat de la requête ==== +<callout type="primary" title="Vérification" icon="true">Pour les opérations d'insertion, de suppression ou de mise à jour des données dans une base, il est utile de vérifier si la requête a bien été exécutée.</callout>
-=== Insertion, suppression, mise à jour === +
-<note>Pour les opérations d'insertion, de suppression ou de mise à jour des données dans une base, il est utile de vérifier si la requête a bien été exécutée.</note>+
  
 <code php *.php> <code php *.php>
Ligne 106: Ligne 107:
 $nb contient le nombre de lignes modifiées dans l'exemple de cas 1 précédent. Cette valeur pourra être testée pour valider la requête. \\ $nb contient le nombre de lignes modifiées dans l'exemple de cas 1 précédent. Cette valeur pourra être testée pour valider la requête. \\
 \\ \\
-=== Résultat d'une commande SELECT === +  * **Résultat d'une commande SELECT** 
-<note>Lorsqu'il s'agit de lire le résultat d'une requête contenant la commande //SELECT//, la méthode //query()// retourne un objet de type //PDOStatement// ($reponse dans les exemples). La classe //PDOStatement// dispose de méthodes permettant de récupérer des données. La méthode des objets //PDOStatement// couramment utilisée pour lire des données est //**fetch**()//.</note +Pour les opérations d'insertion, de suppression ou de mise à jour des données dans une base, il est utile de vérifier si la requête a bien été exécutée. 
- +<callout type="primary" title="SELECT" icon="true">Lorsqu'il s'agit de lire le résultat d'une requête contenant la commande //SELECT//, la méthode //query()// retourne un objet de type //PDOStatement// ($reponse dans les exemples). La classe //PDOStatement// dispose de méthodes permettant de récupérer des données. La méthode des objets //PDOStatement// couramment utilisée pour lire des données est //**fetch**()//.</callout>
-  * //Syntaxe// \\ //array// nomResultat **->** fetch(//integer// type);  +
- +
-Cette méthode retourne un tableau +
-  * pouvant être indicé si type = PDO::FETCH_NUM +
-  * dont les clés sont les noms des colonnes de la table interrogée si type = PDO::FETCH_ASSOC +
-  * dont les clés sont mixtes si type = PDO::FETCH_BOTH +
- +
-Pour lire toutes les lignes du résultat, il faut créer une boucle while qui lit chaque ligne.+
  
 +  * //Syntaxe// \\ //array// nomResultat **->** fetch(//integer// type); \\ \\ Cette méthode retourne un tableau  :
 +    * pouvant être indicé si type = PDO::FETCH_NUM
 +    * dont les clés sont les noms des colonnes de la table interrogée si type = PDO::FETCH_ASSOC
 +    * dont les clés sont mixtes si type = PDO::FETCH_BOTH \\ 
 +\\ Pour lire toutes les lignes du résultat, il faut créer une boucle while qui lit chaque ligne.
   * //Exemple//   * //Exemple//
 <code php *.php> <code php *.php>
Ligne 124: Ligne 122:
 } }
 </code> </code>
 +    * //Résultats// 
 +      * Super Mario Bros - Laurent - 4
 +      * The Rocketeer - Michel - 2
 +      * Ice Hockey - Michel - 7
  
-  * //Résultats//  +=== 2.4 Fermeture de la connexion === 
-    * Super Mario Bros - Laurent - 4 +<callout type="primary" title="NULL" icon="true">Pour clore la connexion, il suffit de détruire l'objet en assignant **NULL** à la variable qui le gère. Si ce n'est pas fait explicitement, PHP fermera automatiquement la connexion lorsque le script arrivera à la fin.</callout>
-    * The Rocketeer - Michel - 2 +
-    * Ice Hockey - Michel - 7 +
-==== 4Fermeture de la connexion ==== +
-<note>Pour clore la connexion, il suffit de détruire l'objet en assignant NULL à la variable qui le gère. Si ce n'est pas fait explicitement, PHP fermera automatiquement la connexion lorsque le script arrivera à la fin.</note>+
  
   * //Exemple//   * //Exemple//
  • info/bdd/sqlphp.1628666355.txt.gz
  • Dernière modification : 2021/08/11 09:19
  • de 127.0.0.1