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 Prochaine révisionLes deux révisions suivantes | ||
info:bdd:sqlphp [2021/08/10 10:35] – [2. Envoi d'une requête] phil | info:bdd:sqlphp [2021/08/11 12:01] – phil | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | [[info: | ||
+ | ===== BDD - MySQL et PHP ===== | ||
+ | |||
+ | [Mise à jour le 10/8/2021] | ||
+ | |||
+ | ** Sources ** | ||
+ | * Documentation de référence sur < | ||
+ | * Tutoriel sur le site **Openclassrooms** : < | ||
+ | |||
+ | **Mot-clé** : SGBD, base, table, enregistrement, | ||
+ | |||
+ | ---- | ||
+ | |||
+ | {{ : | ||
+ | ==== 1. Introduction ==== | ||
+ | En PHP, on se connecte à une base de données avec les méthodes suivantes: | ||
+ | - Avec l' | ||
+ | - Avec l' | ||
+ | |||
+ | **PDO** (**PHP** **D**ata **O**Bjects) comprend trois classes : | ||
+ | * //PDO// pour créer des objets de connexion à la base disposant de méthodes pour l' | ||
+ | * // | ||
+ | * // | ||
+ | |||
+ | ** Extrait de la table // | ||
+ | {{ : | ||
+ | |||
+ | <note tip>On utilise le SGBD MySQL pour les exemples de la base //test//. La table jeux_video peut être téléchargé [[https:// | ||
+ | |||
+ | ==== 2. Accès à une base de données MySQL avec PHP ==== | ||
+ | | ||
+ | - **Connexion** à la base | ||
+ | - **Envoi** de requêtes au serveur | ||
+ | - **Traitement** du résultat des requêtes | ||
+ | - **Fermeture** de la connexion | ||
+ | |||
+ | === 2.1 Connexion à la base === | ||
+ | {{ : | ||
+ | |||
+ | < | ||
+ | |||
+ | * //Syntaxe// \\ nomConnect = **new PDO**(' | ||
+ | |||
+ | < | ||
+ | |||
+ | * //Exemple 1 // : Connexion à la base //test// avec le login //root//, sans mot de passe et sans la gestion des erreurs | ||
+ | |||
+ | <code php *.php> | ||
+ | $bdd = new PDO(' | ||
+ | </ | ||
+ | \\ | ||
+ | * //Exemple 2// : Même connexion avec la gestion des d' | ||
+ | <code php *.php> | ||
+ | try | ||
+ | { | ||
+ | $bdd = new PDO(' | ||
+ | } | ||
+ | catch (Exception $e) | ||
+ | { | ||
+ | die(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === 2.2 Envoi d'une requête === | ||
+ | < | ||
+ | |||
+ | == 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(// | ||
+ | |||
+ | < | ||
+ | |||
+ | * //Exemple// : modification du possesseur de la console NES identifiée par ID=1 (Initialement Florent) | ||
+ | <code php *.php> | ||
+ | $nb=$bdd-> | ||
+ | </ | ||
+ | * // | ||
+ | {{ : | ||
+ | |||
+ | == Cas 2 == | ||
+ | Si la requête **retourne un résultat** (SELECT, etc.), on utilise la méthode // | ||
+ | |||
+ | * //Syntaxe// \\ //object// nomConnect **->** query(// | ||
+ | |||
+ | < | ||
+ | |||
+ | * //Exemple// : //reponse// reçoit le résultat de la requête | ||
+ | <code php *.php> | ||
+ | $reponse = $bdd-> | ||
+ | </ | ||
+ | |||
+ | * // | ||
+ | * Super Mario Bros - Laurent - 4 | ||
+ | * The Rocketeer - Michel - 2 | ||
+ | * Ice Hockey - Michel - 7 | ||
+ | |||
+ | === 2.3 Traitement du résultat de la requête === | ||
+ | === Insertion, suppression, | ||
+ | < | ||
+ | |||
+ | <code php *.php> | ||
+ | echo "< | ||
+ | </ | ||
+ | |||
+ | $nb contient le nombre de lignes modifiées dans l' | ||
+ | \\ | ||
+ | === Résultat d'une commande SELECT === | ||
+ | < | ||
+ | |||
+ | * //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. | ||
+ | |||
+ | * //Exemple// | ||
+ | <code php *.php> | ||
+ | while ($donnees = $reponse-> | ||
+ | echo '< | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | * // | ||
+ | * Super Mario Bros - Laurent - 4 | ||
+ | * The Rocketeer - Michel - 2 | ||
+ | * Ice Hockey - Michel - 7 | ||
+ | |||
+ | === 2.4 Fermeture de la connexion === | ||
+ | < | ||
+ | |||
+ | * //Exemple// | ||
+ | <code php *.php> | ||
+ | $bdd=null; | ||
+ | </ | ||
+ | |||
+ | ==== Résumé ==== | ||
+ | * Pour dialoguer avec MySQL depuis PHP, on fait appel à l' | ||
+ | * Avant de dialoguer avec MySQL, il faut s'y connecter. On a besoin de l' | ||
+ | * Il faut faire une boucle en PHP pour récupérer ligne par ligne les données renvoyées par MySQL. |