Différences
Ci-dessous, les différences entre deux révisions de la page.
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.1 | info:bdd:sqlphp [2024/08/28 17:17] (Version actuelle) – [2.4 Fermeture de la connexion] phil | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{ : | + | [[info: |
- | ====== MySQL et PHP ====== | + | ===== BDD - MySQL et PHP ===== |
- | {{ : | + | |
- | [Mise à jour le 10/8/2021] | + | [Mise à jour le 28/8/2024] |
** Sources ** | ** Sources ** | ||
Ligne 10: | Ligne 9: | ||
* Tutoriel sur le site **Openclassrooms** : < | * Tutoriel sur le site **Openclassrooms** : < | ||
- | **Mot-clé** : SGBD, base, table, enregistrement, | + | **Mots-clés** : SGBD, base, table, enregistrement, |
---- | ---- | ||
{{ : | {{ : | ||
- | ===== 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' | - Avec l' | ||
Ligne 28: | Ligne 27: | ||
{{ : | {{ : | ||
- | <note tip>On utilise le SGBD MySQL pour les exemples de la base //test//. La table jeux_video peut être téléchargé [[https:// | + | <callout type="tip" title=" |
- | ===== B. Accès à une base de données MySQL avec PHP ===== | + | |
+ | ==== 2. Accès à une base de données MySQL avec PHP ==== | ||
| | ||
- **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 | ||
- | ==== 1. Connexion à la base ==== | + | \\ |
+ | === 2.1 Connexion à la base === | ||
{{ : | {{ : | ||
- | <note>La connexion à la base se fait **une seule fois** en créant un **objet** de la classe PDO.</note> | + | <callout type=" |
* //Syntaxe// \\ nomConnect = **new PDO**(' | * //Syntaxe// \\ nomConnect = **new PDO**(' | ||
- | <note> | + | <callout type=" |
* //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(' | $bdd = new PDO(' | ||
</ | </ | ||
- | \\ | + | |
* //Exemple 2// : Même connexion avec la gestion des d' | * //Exemple 2// : Même connexion avec la gestion des d' | ||
<code php *.php> | <code php *.php> | ||
Ligne 62: | Ligne 63: | ||
</ | </ | ||
- | ==== 2. Envoi d'une requête ==== | + | === 2.2 Envoi d'une requête === |
- | < | + | |
- | === Cas 1 === | + | <callout type=" |
- | 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(// | * //Syntaxe// \\ //integer// nomConnect **->** exec(// | ||
- | <note> | + | <callout type=" |
* //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: | ||
{{ : | {{ : | ||
- | === Cas 2 === | + | **Cas 2** - Si la requête **retourne un résultat** (SELECT, etc.), on utilise la méthode // |
- | Si la requête **retourne un résultat** (SELECT, etc.), on utilise la méthode // | + | |
* //Syntaxe// \\ //object// nomConnect **->** query(// | * //Syntaxe// \\ //object// nomConnect **->** query(// | ||
- | <note> | + | <callout type=" |
* //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, | ||
- | ==== 3. Traitement du résultat de la requête ==== | + | <callout type=" |
- | === Insertion, suppression, | + | |
- | <note>Pour les opérations d' | + | |
<code php *.php> | <code php *.php> | ||
Ligne 106: | Ligne 107: | ||
$nb contient le nombre de lignes modifiées dans l' | $nb contient le nombre de lignes modifiées dans l' | ||
\\ | \\ | ||
- | === Résultat d'une commande SELECT === | + | * **Résultat d'une commande SELECT** |
- | <note> | + | Pour les opérations d' |
- | + | <callout type=" | |
- | * //Syntaxe// \\ //array// nomResultat **->** fetch(// | + | |
- | + | ||
- | Cette méthode retourne un tableau | + | |
- | * pouvant être indicé si type = PDO:: | + | |
- | * dont les clés sont les noms des colonnes de la table interrogée si type = PDO:: | + | |
- | * dont les clés sont mixtes si type = PDO:: | + | |
- | + | ||
- | Pour lire toutes les lignes du résultat, il faut créer une boucle while qui lit chaque ligne. | + | |
+ | * //Syntaxe// \\ //array// nomResultat **->** fetch(// | ||
+ | * pouvant être indicé si type = PDO:: | ||
+ | * dont les clés sont les noms des colonnes de la table interrogée si type = PDO:: | ||
+ | * dont les clés sont mixtes si type = PDO:: | ||
+ | \\ 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: | ||
} | } | ||
</ | </ | ||
+ | * // | ||
+ | * Super Mario Bros - Laurent - 4 | ||
+ | * The Rocketeer - Michel - 2 | ||
+ | * Ice Hockey - Michel - 7 | ||
- | * // | + | === 2.4 Fermeture de la connexion === |
- | * Super Mario Bros - Laurent - 4 | + | <callout type=" |
- | * The Rocketeer - Michel - 2 | + | |
- | * Ice Hockey - Michel - 7 | + | |
- | ==== 4. Fermeture de la connexion | + | |
- | <note>Pour clore la connexion, il suffit de détruire l' | + | |
* //Exemple// | * //Exemple// |