Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pourquoi utiliser PDO ?

Question de bon sens..

Sujet résolu
    28 août 2011 à 21:09:48

    Bonsoir,

    Pourquoi de plus en plus de gens se sont mis à PDO pour gérer les connexions et les opérations sur les bases de données ?
    Le tutoriel de M@teo21 a aussi été édité.

    Quand j'ai appris le PHP je n'ai pas entendu parler de PDO et je ne vois pas à quoi cela sert.
    La véritable question est : Sans PDO ça marche alors pourquoi utiliser PDO ?

    PDO a-t-il toujours existé ? Si oui pourquoi s'est-il alors imposé que tardivement ?

    J'avoue ne rien comprendre à l'utilisation de PDO car je n'ai pas encore eu le courage de relire le tuto de M@teo21 pour me mettre à jour.
    D'ailleurs tous mes codes sont sans PDO.

    Merci de vos réponses.
    • Partager sur Facebook
    • Partager sur Twitter

    Jeu du carré rouge modifié, quel niveau atteindrez-vous ? http://squared.go.yj.fr

      28 août 2011 à 21:17:19

      Bonsoir :)

      L'API MySQL qu'à mon avis tu utilisais "à l'époque" n'étant plus maintenue, il a fallu aller chercher ailleurs.

      À ma connaissance, pour le SGBDR MySQL le choix se portait donc soit sur MySQLi (nouvelle version de la bibli MySQL) ou sur PDO. Or PDO fonctionne avec un système de driver et est donc multi-SGBDR. Les dev de PHP ont pensé qu'il s'agissait d'une force (le code n'est pas nécessairement portable, car les SGBDR sont parfois trop spécifiques, mais au moins on est pas obligé d'apprendre 15 biblis différentes pour utiliser différents SGBDR) et ont décidé d'en faire la bibliothèque d'appel au SGBDR par défaut.

      Le SdZ a donc fait le choix de mettre en avant une technologie du futur plutôt qu'une technologie du passé.

      Note qu'il n'est absolument pas déconseillé d'utiliser l'API MySQLi qui peut être utilisé comme l'ancienne API (elle dispose de fonctionnalités en plus si je me souviens bien).
      • Partager sur Facebook
      • Partager sur Twitter
        28 août 2011 à 21:18:14

        Bonsoir.
        PDO est une couche d'abstraction d'accès à la base de données. Il supporte plusieurs types de bases de données, ce qui est un avantage si l'on veut réutiliser son code sur un projet utilisant un autre SGBD. De plus, on n'a pas besoin d'apprendre une autre API pour gérer l'accès à sa base de données dans ce cas.
        PDO n'a pas toujours existé, puisque PHP ne s'est mis à l'objet que tardivement.

        On peut ajouter que PDO bénéficie maintenant de bonnes performances avec MySQL si on utilise mysqlnd.
        • Partager sur Facebook
        • Partager sur Twitter
          28 août 2011 à 21:18:58

          *Frote ses yeux* *Refrote* *rerefrote*, OUI ! c'est bien un moderateur !!! OO oO Oo

          Sinon pour répondre a ta question, je dirait que PDO apporte des avantage, tous d'abords car c'est un style "Objet" donc facile a inserer dans un système en POO, de plus, PDO propose plusieurs système comme les transactions (empêchant l'enregistrement des données si une erreur ce produit) ou le fait de pouvoir préparer une requête (et donc mieux la sécuriser)

          Mais tu peut très bien utiliser Mysql

          For + d'informationnes : http://www.commentcamarche.net/forum/a [...] -mysql-ou-pdo
          • Partager sur Facebook
          • Partager sur Twitter
            28 août 2011 à 21:21:27

            Citation : graille

            de plus, PDO propose plusieurs système comme les transactions (empechant l'enregistrement des données si une erreur ce produit) ou le fait de pouvoir préparer une requête (et donc mieux la sécuriser)


            Si je ne m'abuse, ce sont des fonctionnalités du SGBDR, et non de PDO. PDO ne fait que faciliter (et peut être émuler pour certains SGBDR) leur utilisation.

            Par exemple, on doit pouvoir faire (avec la bonne vieille API MySQL) :
            <?php
            // …
            mysql_query('START TRANSACTION', $dbh);
            // …
            
            • Partager sur Facebook
            • Partager sur Twitter
              28 août 2011 à 21:22:00

              Tout d'abord PDO n'a pas toujours existé, il a fallu la version 5.1 de PHP pour que cela arrive.

              PDO est avant tout une couche d'abstraction objet qui était devenue nécessaire depuis que PHP, dans sa version 5 avait réellement approfondi la programmation orientée objet.
              Il correspond à un besoin des développeurs qui créaient leurs propres couches d'abstraction sans toujours optimiser leurs codes.
              La philosophie de PDO c'est d'éviter de changer le nom des fonctions, la syntaxe... lorsqu'on change de SGBD : seule la configuration de la connexion doit être changée.
              De plus PDO encapsule de manière native, et donc codée en C (i.e toujours plus efficace qu'un code PHP interprété) la gestion des outils les plus répendues : requêtes préparées, transactions, requetes plus standard...
              Enfin PDO est utilisé avec les nouveaux outils, notamment mysqli qui supporte mysql 5.0 de manière plus optimisée que l'extension mysql.

              L'erreur qu'on rencontre souvent sur ce forum c'est de dire que PDO a AMENE les requêtes préparées et les transactions, c'est FAUX : il n'a fait que les encapsuler dans une interface. l'une comme l'autre est une fonctionnalité du SGBD, pas de PHP
              • Partager sur Facebook
              • Partager sur Twitter
                28 août 2011 à 21:22:36

                Citation : gyom

                Citation : graille

                de plus, PDO propose plusieurs système comme les transactions (empechant l'enregistrement des données si une erreur ce produit) ou le fait de pouvoir préparer une requête (et donc mieux la sécuriser)


                Si je ne m'abuse, ce sont des fonctionnalités du SGBDR, et non de PDO. PDO ne fait que faciliter (et peut être émuler pour certains SGBDR) leur utilisation.

                Par exemple, on doit pouvoir faire (avec la bonne vieille API MySQL) :

                <?php
                // …
                mysql_query('START TRANSACTION', $dbh);
                // …
                


                Trop long a écrire
                • Partager sur Facebook
                • Partager sur Twitter
                  28 août 2011 à 21:23:11

                  Citation : graille

                  PDO propose plusieurs système comme les transactions (empechant l'enregistrement des données si une erreur ce produit) ou le fait de pouvoir préparer une requête (et donc mieux la sécuriser)


                  PDO propose quelques fonctions pour les transactions et les requêtes préparées, qui rendent le code plus clair, mais il faut que le SGBD les gère. Ça ne permettra pas d'utiliser les transactions sur une table MyISAM.

                  EDIT: je jette l'éponge, gyom est trop rapide ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 août 2011 à 21:52:21

                    Je vous remercie pour vos réponses.
                    J'ai un peu lu je lirai davantage plus tard.

                    J'ai commencé à regarder la syntaxe de PDO hier donc ça ne date pas..
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Jeu du carré rouge modifié, quel niveau atteindrez-vous ? http://squared.go.yj.fr

                    Pourquoi utiliser PDO ?

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown