Aller au contenu

Utilisez le potentiel des bases de données avec cette classe qui simplifie PDO pour SQL, MySQL…

Découvrez comment utiliser le potentiel des bases de données avec PDO, PHP Data Object qui va servir d’interface avec votre base de données et ainsi simplifié ses interactions.

A travers la classe DataBase qui vous a été présenté dans un cours précédent passez de mysqli à PDO.

Tout est dans la vidéo ci-dessous.

[ppmaccordion][ppmtoggle title= »Afficher le texte de la vidéo »]

Utilisez le potentiel des bases de données avec cette classe qui simplifie PDO pour SQL, MySQL…

Bonjour à tous et bienvenu sur Développement Facile.

Dans cette nouvelle série de tutoriel vous allez apprendre des stratégies très avancées en développement PHP et à combiner le PHP et le HTML 5. Dans ces dernières semaines vous avez appris à créer des applications avec JavaScript de plus en plus évoluées, à utiliser les balises HTML 5 que ce soit sur Smartphone, sur tablette ou sur un ordinateur portable et bien là vous allez découvrir comment utiliser les concepts avancés de PHP 5 avec HTML 5.

La classe PDO

Alors déjà d’une part vous avez une nouvelle classe, rappelez-vous il y a quelque temps je vous avait présenté ma classe MySQL, qui utilisait mysqli, maintenant il existe la classe PDO pour PHP data objet, elle est apparue avec PHP 5 donc déjà un petit moment et elle présente le grand avantage c’est que ça centralise la connexion vers votre base de données, votre base de données ça peut être MySQL, Oracle, SQL Server, etc. et ce sera toujours les mêmes méthodes, la même interface pour accéder aux informations stockées dans votre base de données, donc c’est très intéressant pour vous, justement si vous souhaitez, vous développez votre application avec MySQL les données sont stockées dans MySQL, votre application évolue vous avez de plus en plus de données à gérer, du coup vous basculez sur une base de données Oracle et l’avantage c’est que vous ne changez pas votre code juste un petit paramètre d’appel dans PDO. C’est très intéressant pour vous.

La connexion à la base de données PDO elle est établie via le constructeur, quand vous instanciez votre classe, directement avec l’objet PDO dans le constructeur, la connexion est établie donc vous devez donner différentes informations dans le constructeur, par exemple le nom du pilote à utiliser, MySQL, pstgresql, etc. c’est en fonction du type de base de données que vous allez interroger, le nom du serveur host bien évidemment, le nom de la base de données, le nom d’utilisateur, le mot de passe et vous pouvez rajouter des options de connexion, très intéressant les options de connexion je vais vous les présenter tout à l’heure. Vous voyez sur votre écran, ça affiche là juste ici un exemple d’instanciation de l’objet PDO pour attaquer une base de données MySQL donc MySQL host le nom du serveur, DB name le nom de la base et des paramètres optionnels le nom l’utilisateur et le mot de passe.

Par défaut il faut savoir que la connexion à la base de données elle est établie que pendant la durée de vie de l’objet PDO, c’est-à-dire dès que si l’objet PDO est supprimé la connexion à la base de données elle est fermée, par contre vous pouvez créer une connexion persistante, c’est une connexion qui restera active de manière permanente, par exemple, d’une page à une autre, lorsque vous naviguez dans votre site Internet, la connexion sera persistante, elle existera toujours. Ça permet de gagner du temps de connexion à la base, mais il faut savoir que je vous déconseille d’utiliser une connexion persistante car ça utilise des ressources, par exemple chez le l’hébergeur BA je crois que vous avez le droit à 30 connexions simultanées, donc si vous faites des connexions persistantes de pages en pages, vous ne pouvez avoir que 30 personnes en même temps de connectées sur le site Internet, il est préférable de fermer la connexion dès que vous en avez plus besoin comme ça quelqu’un d’autre peut y accéder etc. Les connexions persistantes c’est dans des cas très spécifiques pour des applications beaucoup plus complexes, beaucoup plus évoluées, donc vraiment étudiez au cas par cas mais dans 80 % des cas une connexion temporaire est largement suffisante, une connexion qui est seulement active pendant l’utilisation de l’objet PDO et dès que l’objet PDO est supprimé de la mémoire la connexion est fermée automatiquement, si vous voulez créer une connexion persistante il suffit de le spécifier dans les options PDO, c’est un tableau et vous appelez des constantes que vous mettez à true ou false et donc c’est PDO ATTR_PERSISTENT = true, là ça vous fera une connexion persistante.

Pour vous déconnecter à la base de données et fermer les résultats d’une requête il faut appeler la méthode close cursor, vous faites des select, des update, des delete etc. et après votre select, vous fermez le curseur, vous appelez la méthode close cursor sur les results, ça va fermer la requête et ensuite vous mettez l’objet PDO à null et du coup votre base de données va être fermée tout simplement.

La classe DataBase MySQL Dev Facile

Rappelez-vous il y a quelques mois déjà, j’ai partagé avec vous une classe PHP pour gérer vos connexions avec MySQL ou une base de données quelconque donc c’était DataBase MySQL dev facile, donc ça permettait de vous connecter à une base de données, d’ajouter, de mettre à jour, de supprimer des éléments et ça utilisait mysqli et donc c’est une classe qui vous permet de gagner énormément de temps, si vous l’avez déjà utilisée dans votre application cette classe, c’est génial parce que vous avez plus qu’à la remplacer avec la nouvelle classe que je vais vous donner donc la nouvelle classe qui va utiliser l’objet PDO et vous avez zéro modification dans tout le code de votre application, zéro, rien, l’avantage de la méthode développement facile, vous allez utiliser la classe date à base MySQL dev facile, vous avez appelé ses méthodes, sa façon de se connecter, vous remplacez juste la classe, j’ai conservé exactement les mêmes méthodes, rajouté quelques options mais c’est exactement les mêmes méthodes donc vos applications vont tourner mais au lieu d’utiliser mysqli elle vont utiliser l’objet PDO et donc tous ses avantages.

Le gros avantage c’est que vous n’avez pas besoin de mettre à jour vos classes, vous gardez votre code PHP existant, tout a été mis à jour dans la classe MySQL c’est super, elle utilise PDO, vous vous conservez les mêmes méthodes, tout est identique.

Je vais vous montrer à travers un exemple de code source la modification de la classe DataBase MySQL dev facile pour passer de mysqli à PDO tout en conservant les méthodes existantes donc c’est vraiment le gros avantage de la méthode développement facile, c’est que vous utilisez des classes qui vous font l’API pour votre application, vous faites votre propre API et vous utilisez les objets PHP, vous les implémentez dans vos classes, vous créez des méthodes, des interfaces et quand PHP le langage PHP évolue des nouvelles versions, qu’il y a des nouveaux objets vous modifiez juste la classe qui gère le moteur PHP si je puis dire, et vos applications fonctionnent toujours pareil, avec les mêmes méthodes, les mêmes fonctions, les mêmes classes.

On passe à un exemple de code source tout de suite.

On voit tout de suite ensemble l’ancienne classe MySQL donc elle fonctionnait comme ça, il suffisait de l’instancier, créer une requête, d’appeler la méthode Query et de boucler sur les résultats en faisant un get objet, je vous montre tout de suite comment fonctionne la nouvelle, qu’est-ce que vous faites ?

Vous l’instanciez de la même façon, vous mettez une requête, vous faites un query dessus et vous faites un getObjet avec oResult pour récupérer les infos, donc c’est exactement le même principe de fonctionnement que ce soit l’ancienne classe MySQL donc que vous utilisez peut-être avec mysqli, ou la nouvelle classe MySQL, justement avec PDO, avec l’objet PDO, j’ai changé que le moteur et c’est ce que je vais vous montrer, donc il y a toujours le même tableau de configuration avec une chose en plus, le type de base que vous allez viser, et les options donc j’ai mis les options pour activer les exceptions PDO pour retourner un objet lorsque vous faites un sélect, lorsque vous interrogez la base de données, moi je travaille avec un objet ce qui permet d’avoir ce principe de fonctionnement ou le nom des champs ça correspond tout simplement aux propriétés de l’objet pour récupérer le contenu d’une requête sélect, et en UTF8 parce que les bases de données, les miennes sont en UTF8, de plus en plus de base de données sont en UTF8 par défaut donc voilà, pour utiliser le format UTF8, ensuite il suffisait de modifier new PDO, c’est-à-dire je vais mettre les deux classes l’une à côté votre l’autre, là vous faisiez un mysqliconnect directement bien là, vous construisez les paramètres de l’objet PDO donc avec SGBD que vous pouvez changer, le serveur, le nom de la base de données, donc ici, ensuite le logging, le mot de passe et les options, et voilà si il y a une erreur vous affichez un message et vous renvoyez sur une URL erreurBDD, tout simplement, voilà c’est le constructeur il n’y a que ça qui a changé, après il suffit d’utiliser l’objet PDO, vous avez votre objet PDO qui est créé, pour exécuter une requête c’est la même chose avant ça se passait comme ça, mysqli query, et là on utilise query l’objet PDO et on retourne le résultat pareil là, on retournait le résultat ici, et au fur comme ça, vous mettez seulement à jour les méthodes pour qu’il y ai le même fonctionnement, même entrée toujours, getObject, même paramètre en entrée, même paramètre en sortie, et là c’est pareil avec un echo de résultat, s’il n’y en a pas, tout simplement. Aucun résultat pour la requête donc là c’est pour récupérer un objet lorsque vous avez effectué un select, vous spécifiez l’objet de résultats de la query et vous faites un fetch dessus ou sinon vous prenez le dernier objet de la requête exécutée tout simplement, pareil pour getNumRows on met à jour le moteur, là on utilisait mysqli affected row, là vous allez utiliser rowCount tout simplement soit sur l’objet result de la dernière enquête, soit vous transmettez l’objet result en paramètre d’entrée, même façon pour la lastInsertId, récupérez l’identifiant généré par la dernière requête, vous adaptez, vous utilisez toujours l’objet PDO, les possibilités qu’il vous donnent voilà donc c’est aussi simple que ça pour transformer l’ancienne classe MySQL qui utilisait l’objet mysqli avec la nouvelle classe MySQL qui utilise l’objet PDO et donc si vous faites un test il suffit d’utiliser ça, c’est une astuce que je vous donne, dans la méthode développement facile en PHP avancé, vous avez une solution entièrement automatique, en fonction que vous êtes sur un environnement prod, de test, il suffit de spécifier une seule constante, une seule variable, et ça va inclure par exemple MySQL de test, si vous êtes en test, ça va ajouter du debug tout ça automatiquement dans vos fichiers grâce à une classe Master, et si vous mettez que vous êtes en Prod dans la constante ça va inclure MySQL de prod pour interroger les bases de données de production, désactiver le debug ou faire un debug silencieux, debug silencieux je vous donne tous les outils qu’il faut également dans PHP expert en fait pour vous en dire deux mots, ça consiste à écrire dans un fichier texte qui est protégé par un HTXS toutes vos lignes de debug tout simplement, l’utilisateur ne le voit pas, il n’y a pas accès, il n’y a que vous qui y avez accès.

Comment fait-on fait ? On crée un nouvel objet MySQL qui en fait va créer un nouvel objet PDO, tout simplement là c’est renseigné tout en sachant que aConnect c’est une variable que vous renseignez uniquement dans ce fichier si vous en avez besoin, par exemple, pour vous connecter à une base de données de type WordPress ou autre, vous avez ici un getConfig, vous pouvez récupérer la configuration de votre base de données tout simplement, le tableau aConnect avec tous les accès donc c’est très pratique getConfig, pensez-y ça vous êtes sûr, vous mettez une bonne fois pour toute et c’est bon, vous accéderez tout le temps à votre base de données si vous avez besoin de récupérer ces infos, vous avez getConfig qui est là pour ça.

On crée une requête sélect, on l’affiche getObject, on parcourt, name, format de la date tout simplement qu’on a récupérée ici, et le score, là on va ajouter une valeur aléatoire, on va faire un update sur une table de la base de données tout simplement, on fait la requête, on récupère le nombre d’enregistrements modifiés, et on réaffiche le résultat voilà c’est aussi simple que ça donc qu’est-ce que ça donne ?

La liste des 10 premiers utilisateurs de la table, le nom, le prénom, la date et le score et donc on a mis à jour ce joueur-là regardez le score qui a changé, si je recharge la page l’ancien score, le nouveau qui change etc. La classe fonctionne comme un charme, je vous conseil de l’utiliser dès maintenant dans vos applications dans PHP avancé, vous apprendrez à utiliser les requêtes préparées donc vous aurez une autre version de cette classe, beaucoup puissante, beaucoup plus performante, avec les requêtes préparées.

Votre plan d’actions !

Maintenant c’est à vous de jouer donc mettez à jour votre classe MySQL data base pour utiliser l’objet PDO, c’est vraiment très important de toujours utiliser les dernières fonctionnalités d’un langage pour optimiser la performance de ses applications, si vous avez des questions posez les directement sous les commentaires là sous cette vidéo, vous retrouverez bien évidemment en téléchargement la classe data base dev facile qui utilise l’objet PDO, vous avez plus qu’à la mettre à jour dans vos applications par un simple copier-coller, moi je vous invite dès maintenant là juste au-dessus de moi il y a une bannière cliquer ici pour aller beaucoup plus loin, cliquez sur cette bannière, sur ce lien vous allez être dirigés dans une deuxième vidéo, dans cette deuxième vidéo vous allez aller encore plus loin avec le développement avancé en PHP 5, avec HTML 5 en combinant JavaScript donc vous allez découvrir les modèles de conceptions en PHP, comment les utiliser, la méthode développement facile comment créer deux à trois fois plus rapidement des applications performantes, stables, évolutives, apprendre à travailler en équipe, donc tout ça c’est dans la deuxième vidéo, cliquez simplement sur le lien juste au-dessus de moi sur l’image, je vous retrouve dans la deuxième vidéo pour vous expliquer comment profiter des dernières avancées de PHP 5, je vous dis à tout de suite.

[/ppmtoggle] [/ppmaccordion]

Télécharger la classe DataBase qui utilise PDO

Retrouvez le code source commenté de la classe de gestion des bases de données avec PDO

Téléchargement du code source PDO

Cliquez ici pour télécharger le code source PDO

Posez vos questions sur les bases de données en PHP

Utilisez la zone commentaires pour poser vos questions sur les bases de données PHP et l’objet PDO

 

EXCLUSIF : Les 7 Secrets Révélés de JavaScript pour Créer VOS Applications — dès la semaine prochaine !

EXCLUSIF : La formation « JavaScript Facile » OFFERTE pour Créer VOS Applications — dès la semaine prochaine !

EXCLUSIF : Créez VOS Applications JavaScript — en moins de 7 jours grâce à notre formation OFFERTE « JavaScript Facile »

Que diriez-vous de Développer des Applications JavaScript Performantes — dès la semaine prochaine ?

TÉLÉCHARGEZ : Les codes sources du livre « JavaScript Facile » pour Créer VOS Applications — dès la semaine prochaine !

Cliquez ici pour tout recevoir >>