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
Prochaine révisionLes deux révisions suivantes
info:bdd:sqlphp [2021/08/11 09:19] – modification externe 127.0.0.1info:bdd:sqlphp [2021/08/11 12:05] – [2.3 Traitement du résultat de la requête] 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&30|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 10/8/2021]
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 29: Ligne 28:
  
 <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> <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>
-===== 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|}}
  
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> <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 === +**Cas 1** - Si la requête **ne retourne pas de résultat** (INSERT, UPDATE, DELETE, etc.), on utilise la méthode //exec()//.
-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)
Ligne 79: Ligne 79:
 {{ :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) 
Ligne 95: Ligne 94:
     * The Rocketeer - Michel - 2     * The Rocketeer - Michel - 2
     * Ice Hockey - Michel - 7     * Ice Hockey - Michel - 7
- +\\ 
-===3Traitement du résultat de la requête ==== +=== 2.3 Traitement du résultat de la requête === 
-=== Insertion, suppression, mise à jour ===+  * **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> <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>
  
Ligne 106: Ligne 105:
 $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>  <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> 
  
-  * //Syntaxe// \\ //array// nomResultat **->** fetch(//integer// type);  +  * //Syntaxe// \\ //array// nomResultat **->** fetch(//integer// type); \\ \\ Cette méthode retourne un tableau 
- +    * pouvant être indicé si type = PDO::FETCH_NUM 
-Cette méthode retourne un tableau +    * dont les clés sont les noms des colonnes de la table interrogée si type = PDO::FETCH_ASSOC 
-  * pouvant être indicé si type = PDO::FETCH_NUM +    * dont les clés sont mixtes si type = PDO::FETCH_BOTH
-  * 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. Pour lire toutes les lignes du résultat, il faut créer une boucle while qui lit chaque ligne.
Ligne 129: Ligne 126:
     * The Rocketeer - Michel - 2     * The Rocketeer - Michel - 2
     * Ice Hockey - Michel - 7     * Ice Hockey - Michel - 7
-===4Fermeture de la connexion ====+ 
 +=== 2.4 Fermeture 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> <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>
  
  • info/bdd/sqlphp.txt
  • Dernière modification : 2021/08/11 12:10
  • de phil