IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Utilisez-vous PDO ?

Votants
58. Vous ne pouvez pas participer à ce sondage.
  • Oui, c'est pratique et performant

    39 67,24%
  • Non, ce n'est pas forcément utile

    6 10,34%
  • Des fois oui, des fois non, en fonction des cas

    13 22,41%
PHP & Base de données Discussion :

Utilisez-vous PDO ?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Community Manager

    Profil pro
    Inscrit en
    Avril 2014
    Messages
    4 207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2014
    Messages : 4 207
    Par défaut Utilisez-vous PDO ?
    Bonjour à tous,

    Le choix du SGBD semble alimenter encore les discussion le soir près de la cheminée. Mais en plus de ce choix parfois cornélien, il existe plusieurs façons d'accéder à chaque SGBD. D'une part en utilisant les fonction liées directement à ce SGBD (par exemple mysql, mysqli, postgresql), et d'autre part avec PDO.

    Quel est l'intérêt d'utiliser PDO alors que les outils spécifique à chaque SGBD existent ?
    Pour contacter les différents services du club (publications, partenariats, publicité, ...) : Contacts

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    m'a emmené vers un article intitulé PDO, l'abstraction de données pour PHP 5.

    Après cette lecture, et sans avoir essayé encore l'outil, je dirais que si ton application ne se servira que d'un seul SGBD, PDO n'est peut-être pas indispensable.
    Mais si par contre tu souhaites que ton application reste valable quelle que soit la base de données qu'il y a derrière, ça semble intéressant.

    Ce n'est pas expliqué dans l'article mais je suppose que PDO traduit des requêtes SQL pur en subtilités propres aux SGBD ?
    Je pense par exemple à AUTO_INCREMENT qui existe en MySQL mais pas en PostgreSQL ni je crois en Oracle ou en SQL Server.

    Je ne sais pas s'il est capable de se débrouiller à traduire le MySQL GROUP_CONCAT en une requête donnant le même résultat dans d'autres SGBD.

    A explorer.

    Mais je crois que tu viens de lancer un débat qui promet d'être animé !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Invité1
    Invité(e)
    Par défaut
    Bonjour,

    Merci de cette réponce

    En effet, cela correspond à ce que je pensais. A savoir qu'en fonction du type d'application et de la supposition d'utilisation de divers SGDB, le PDO peut à priori être intéressant...

    Concernant mon application, il n'y aura que l'utilisation de Postgresql.

    Néanmoins, je reste septique quant à l'opportunité de l'utilisation du PDO. Il me semble bon de souligner qu'il faille indiquer aux fonctions PDO quel SGBD est utilisé... De ce fait, les lignes de code concernées s'en trouvent bien sur modifiées...

    N'est-il donc pas plus indiqué de créer des fonctions ou mieux des class type qui en fonction du SGBD utilisé seraient chargées ou non. Dans ce cas, le code principal serait alors identique et seul celui concernant le SGBD serait lui adapté...

    Mais peut-être les utilisateurs de PDO pourraient apporter leurs arguments car pour l'instant, si je comprends mieux le rôle du PDO, je reste très septique quant à son véritable intérêt... D'autant comme l'indique justement CinePhil, certains SGDB permettent certains traitement et pas d'autres...

    Voilou, à vos claviers

    Couik

    PS : dommage, je n'ai pas tilté assez tôt, un sondage aurait été aussi instructif pour connaitre l'orientation général des développeurs...

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Ce n'est pas expliqué dans l'article mais je suppose que PDO traduit des requêtes SQL pur en subtilités propres aux SGBD ?
    Je pense par exemple à AUTO_INCREMENT qui existe en MySQL mais pas en PostgreSQL ni je crois en Oracle ou en SQL Server.
    Que d'horreur :
    Les auto incréments existent depuis la norme SQL:2003 qui, comme son nom l'indique date de 2003. Elle précise que les deux éléments d'auto incrémentation sont IDENTITY propre à une seule colonne d'une table et les SEQUENCE indepandant des tables.

    Lisez mon livre SQL il y a une partie de chapitre la dessus.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    mon_nom_est_personne
    Invité(e)
    Par défaut
    perso je n'utilise plus que pdo pour 3 raisons:
    - un standard, que l'on veuille ou non ca l'est devenue.
    - flexible, la migration d'une bdd a une autre ce fait rapidement (perso je prefere quand meme recrire les requetes)
    - le systeme de prepare, execute et fetchAll qui sont tout ce que j'attendais (surtout fetchAll) en standard.

  6. #6
    Invité1
    Invité(e)
    Par défaut
    Je comprends effectivement les raisons

    Mais d'une bdd à une autre, il y a des variations quant aux possibilités de gestion des données ou aux capacité des bdd
    Est-ce à dire alors qu'en utilisant PDO, on se cantonne dans des limites imposées en éliminant de ce fait certains avantage d'offre certaine bdd ?

    Car on peut supposer que je choix d'une bdd répond à un cahier des charges tant concernant les prix que les performances

  7. #7
    mon_nom_est_personne
    Invité(e)
    Par défaut
    Le problème c'est qu'un projet on sais toujours ou il commence jamais ou il finit.
    Prenons deux ca de figure possible (dont un que j'ai vécu):
    - le client se fait embobiner par un commercial de la société A et décide donc d'utiliser leur bdd (ou pire de passer d'un environement linux a une plateforme windows). Et bien crois moi t'es content que les transactions, executions et fetching soient gérées par appel de méthode standard.
    - la solution bdd disparait du marché

    Il y a aussi un avantage conceptuel et structurel, tu peux enfin représenter ton modèle dans ton appli php (je sais les adodb etc.. mais franchement ...)

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Standard:
    - Parceque tu n'as besoin d'apprendre une nouvelle librarie à chaque fois que tu changes de base de données.
    - De même quand tu veux partager des codes sources PDO facilite la compréhension et l'intégration pour les autres.

    Migration de base possible.

    Fonctionnalités avancées:
    - Gestion des Procédures stockées natives.
    - Gestion des transactions (propose une émulation si la base ne le gère pas)


    Mais d'une bdd à une autre, il y a des variations quant aux possibilités de gestion des données ou aux capacité des bdd
    Est-ce à dire alors qu'en utilisant PDO, on se cantonne dans des limites imposées en éliminant de ce fait certains avantage d'offre certaine bdd ?
    Tu peux peut-être trouver des cas super spécifiques où il vaudra mieux passer par la librairie de la base plutôt que PDO mais je n'en ai jamais rencontrés. Dans ce cas tu peux toujours créer une class qui s'occupe de ces cas.

    Car on peut supposer que je choix d'une bdd répond à un cahier des charges tant concernant les prix que les performances
    Tu peux ajouter facilité de maintenance du code.

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le desavantage de PDO actuellement c'est quand même la performance (au moins par rapport aux extensions mysql).

    L'utilisation multi-base est quand même tout a fait relative, les SGDB ayant des syntaxes SQL propres.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Le desavantage de PDO actuellement c'est quand même la performance (au moins par rapport aux extensions mysql).
    A priori PDO serait plus lent cependant j'ai fait un benchmark pour en avoir le coeur net et je trouve les memes résultats entre PDO et Mysqli. Est-ce que la derniere version de PDO a été optimisé?

    Mon test consistait a appeler x fois le code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	    $pdo = new PDO("mysql:host=localhost;dbname=test;","webadmin","password");
     
    		$sth = $pdo->prepare("INSERT INTO `article` (title, description, created_at, updated_at) VALUES (?, ?, NOW(), NOW()) ");
    		$sth->bindValue(1, $title, PDO::PARAM_STR);
    		$sth->bindValue(2, $description, PDO::PARAM_STR);
    		$sth->execute();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	    $mysqli = new mysqli("localhost", "webadmin", "password", "test");
     
    		$stmt = mysqli_prepare($mysqli, "INSERT INTO `article` (title, description, created_at, updated_at) VALUES (?, ?, NOW(), NOW()) "); /* Query 1 */
    		mysqli_stmt_bind_param($stmt, "ss", $title, $description);
    		mysqli_stmt_execute($stmt);
    		mysqli_stmt_close($stmt); // CLOSE $stmt

    J'ai fait aussi des tests avec des selects aleatoires sur une tables de 10000 entrées, j'ai la aussi les memes résultats :-|

Discussions similaires

  1. [PDO] INSERT de choix multiples en pdo
    Par speedylol dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 16/03/2015, 21h57
  2. [Choix] Quelles attentes par rapport aux SGBD ?
    Par thierry34 dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 13/07/2002, 20h08
  3. [Choix] SGDB pour Entreprise : coût, efficacité, etc.
    Par grassat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 15/06/2002, 08h52
  4. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23
  5. Choix d'un ORB
    Par Anonymous dans le forum CORBA
    Réponses: 4
    Dernier message: 06/05/2002, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo