Base de données et PDO
Ce cours est payant
S'inscrire- Pré-requis
- Présentation
- Les trois classes de PDO
- Se connecter à une base de données
- Exécuter une requête SQL
- quote() et injections SQL
- Les requêtes préparées
- Lier des variables dans une requête
- Exploiter les résultats d'une requête
- La méthode fetch()
- La méthode fetchAll()
- Exploiter les résultats des INSERT, DELETE, UPDATE
- Débugger avec PDO
- Exercices
- Système de transaction : back to the future !
- Récupérer des données de structure de la DB
Pré-requis
Mis à jour leVoici ce qu'il faut maîtriser un minimum pour bien commencer ce cours :
- les bases de PHP
- super globales PHP
- les bases de données
- SQL
PDO étant une classe, vous êtes censé être au minimum "initié" à la POO. En revanche, on peut découvrir PDO sans forcément avoir vu…
Vous devez être inscris pour voir le contenu complet de cette section (33 mots supplémentaires ).
Présentation
Mis à jour leDepuis PHP5, PDO (pour PHP Data Object) est devenu la méthode de travail standardisée de PHP pour travailler avec les bases de données. Auparavant, PHP offrait simplement des fonctions natives permettant de travailler facilement avec MySQL (tel que mysql_query()), ou bien quelques autres SGBDR. Bien que fonctionnelles et pratiques, ces…
~~ Fin de l'extrait ~~Vous devez être inscris pour voir le contenu complet de cette section (200 mots supplémentaires ).
Les trois classes de PDO
Mis à jour lePDO est organisé autour de trois classes qui remplissent chacun un rôle bien distinct :
- la classe PDO : c'est la classe qui permet la connexion avec le système de base de données (gestion des drivers, authentification, etc...)
- la classe PDOStatement : c'est la classe qui va vous…
Vous devez être inscris pour voir le contenu complet de cette section (81 mots supplémentaires ).
Se connecter à une base de données
Mis à jour leLorsque vous travaillez avec une base de données, vous utilisez un logiciel "extérieur" à PHP (le serveur de base de données). Il va donc falloir que PHP se connecte au serveur de base de données pour pouvoir échanger des informations avec celui-ci. PDO contient tous les éléments nécessaires à cela,…
~~ Fin de l'extrait ~~Vous devez être inscris pour voir le contenu complet de cette section (739 mots supplémentaires ).
Exécuter une requête SQL
Mis à jour leVoici les deux méthodes standards qui permettent d'exécuter une requête SQL. Par "exécuter", on entend le fait de l'envoyer au serveur de base de données sur lequel PHP est connecté, et d'attendre une réponse de celui-ci.
Méthodes d'exécution d'une requête SQL non-préparée :
- query() : vous permet d'exécuter un…
Vous devez être inscris pour voir le contenu complet de cette section (205 mots supplémentaires ).
quote() et injections SQL
Mis à jour leQuand vous recevez des informations saisies par l'utilisateur, vous ne savez pas trop ce que la personne a pu saisir comme données. Afin de protéger votre système d'une injection SQL, ou de potentiels caractères invalides (ex : des guillemets), vous pouvez appliquer la méthode quote() à vos futures…
~~ Fin de l'extrait ~~Vous devez être inscris pour voir le contenu complet de cette section (465 mots supplémentaires ).
Les requêtes préparées
Mis à jour leLa méthode prepare() de l'objet PDO vous permet de définir une requête, mais sans lui donner ses valeurs finales. Vous allez pouvoir déterminer les paramètres différenciant (ex : id = 2 / id = 3 / etc...) en leur donnant une clé qui sera remplacée par la vraie…
~~ Fin de l'extrait ~~Vous devez être inscris pour voir le contenu complet de cette section (495 mots supplémentaires ).
Lier des variables dans une requête
Mis à jour leOn peut aussi assigner des valeurs à des paramètres de requête SQL en utilisant les méthodes bindParam() ou bindValue(). Ces méthodes vous permettent de binder (lier) des variables avec des paramètres avant d'exécuter la requête. Cela peut être utile dans le cas ou beaucoup de code…
~~ Fin de l'extrait ~~Vous devez être inscris pour voir le contenu complet de cette section (331 mots supplémentaires ).
Exploiter les résultats d'une requête
Mis à jour leLorsqu'une requête est exécutée via PDO, PHP envoi la chaîne de caractère au SGBDR. Le SGBDR la traite, il va lire ou modifier les données contenues dans la base de données, puis va renvoyer une réponse à PHP.
(image visible sur la plateforme de formation)
… ~~ Fin de l'extrait ~~
Vous devez être inscris pour voir le contenu complet de cette section (123 mots supplémentaires ).
La méthode fetch()
Mis à jour leLa méthode fetch() est la plus simple de toute. Elle vous renvoie le premier enregistrement d'un jeu de résultat contenu dans la réponse de la bdd.
Vous pouvez l'utiliser dans de deux manières :
- soit vous n'attendez qu'une seule ligne de réponse…
Vous devez être inscris pour voir le contenu complet de cette section (1036 mots supplémentaires ).
La méthode fetchAll()
Mis à jour leLa méthode fetchAll() fonctionne à peu près de la même manière que fetch(), sauf qu'elle va vous renvoyer directement un tableau PHP contenant toutes les lignes de la réponse. Donc si vous avez plusieurs lignes à récupérer, vous n'aurez pas besoin d'itérer sur la méthode fetch() afin de parcourir les…
~~ Fin de l'extrait ~~Vous devez être inscris pour voir le contenu complet de cette section (325 mots supplémentaires ).
Exploiter les résultats des INSERT, DELETE, UPDATE
Mis à jour leLorsque l'on exécute des requêtes de type INSERT, UPDATE ou DELETE, on ne va pas récupérer de données à proprement parlé. C'est-à-dire que la requête ne génère pas de jeu de données à exploiter.
- INSERT : la bdd…
Vous devez être inscris pour voir le contenu complet de cette section (456 mots supplémentaires ).
Débugger avec PDO
Mis à jour lePDO offre des méthodes permettant de débugger facilement une requête qui aurait rencontrée un problème. Si par exemple vous avez fait une erreur de syntaxe dans votre requête, il sera impossible de l'exécuter dans votre SGBDR, et celui-ci renverra une erreur (avec un code erreur) vous permettant de cibler facilement…
~~ Fin de l'extrait ~~Vous devez être inscris pour voir le contenu complet de cette section (312 mots supplémentaires ).
Exercices
Mis à jour leVoici quelques exercices pour s'entrainer avec PDO. Ils vont du plus simple au plus compliqué :
- annuaire : travail avec une seule table déjà remplie
- blogging : travail sur plusieurs tables déjà remplies
- système de votation : à vous de concevoir la base de donnée et de l'exploiter
Vous devez être inscris pour voir le contenu complet de cette section (-6 mots supplémentaires + 6 exercices ).
Système de transaction : back to the future !
Mis à jour le(image visible sur la plateforme de formation)
La gestion des transactions est un concept un peu plus avancé de PDO et des SGBDR. Pour faire simple, cela permet de simuler l'exécution d'un ensemble de requêtes, et de les exécuter seulement si tout s'est passé comme prévu.
… ~~ Fin de l'extrait ~~Vous devez être inscris pour voir le contenu complet de cette section (375 mots supplémentaires ).
Récupérer des données de structure de la DB
Mis à jour leVous devez être inscris pour voir le contenu complet de cette section (-10 mots supplémentaires ).
Vous devez être inscris pour voir le contenu complet de cette section (-10 mots supplémentaires ).
Vous devez être inscris pour voir le contenu complet de cette section (-10 mots supplémentaires ).