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

PHP & Base de données Discussion :

Faut il passer à PDO ? [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut Faut il passer à PDO ?
    Bonjour,

    Ma question est toute simple : Je suis sous PHP/MYSQL et jusqu'à présent, j'utilise des requêtes classiques du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sqlcit = "SELECT idcit,textecit FROM citations ORDER BY rand() LIMIT 1";
    $resultcit = mysql_query( $sqlcit , $conn );
    $rowcit = mysql_fetch_assoc( $resultcit );
    J'ai lu qu'à partir de PHP6 ces requêtes ne fonctionneraient plus. Est ce vrai ?

    Une autre question : Pour mes données insérées dans ma BDD j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_real_escape_string
    Pour les données affichées j'utilise en fonction de Magic quotes on ou off soit soit puis un Est il vrai que PDO gère tout ça ? En d'autres termes est ce que j'aurai encore à me soucier de "tout ce bordel" ?

    Et donc, dois je passer à PDO ?

    Merci d'avance de vos réponses ...
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    PDO sera l'extension de base de donnée mise en avant dans PHP6 mais les anciennes extensions pourront toujours être activées.
    Il est d'ailleurs probable que les hebergeurs qui passeraient a PHP6 continuent à les proposer en plus de PDO.

    Pour les magic_quotes, ca sera definitivement reglé puisqu'elles disparaissent.

    Concernant mysql_real_escape_string(), ca n'existe pas en PDO : pour inclure des paramètres dans une requête, on peut utiliser des requetes préparées.

    Et donc, dois je passer à PDO ?
    Si ton hebergement le propose et que tu écris un nouveau code, tu peux en profiter pour le faire en PDO.
    A savoir quand même qu'au niveau performance PDO n'apporte actuellement rien, ou même est plus lent.
    Son interêt se situe plus au niveau des fonctionnalitées.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Merci de ta réponse Sabotage.
    Concernant mysql_real_escape_string(), ca n'existe pas en PDO : pour inclure des paramètres dans une requête, on peut utiliser des requetes préparées.
    Ce qui veut dire qu'elles sont protégées d'une injection SQL ?
    Si ton hebergement le propose et que tu écris un nouveau code, tu peux en profiter pour le faire en PDO.
    Ce qui veut dire qu'il n'est pas nécessaire de passer à PDO ?
    Son interêt se situe plus au niveau des fonctionnalitées.
    Que veux tu dire par là ? Peux tu m'en dire plus ?

    Encore merci ....
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Les requêtes préparées sont effectivement a l'abri des injections.
    Ca donne ça par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = "SELECT password FROM table WHERE login = :login";
    $sth = $dbc->prepare($sql);
    $sth->execute(array(':login'=>$login));
    Comme tu le vois la requete n'est plus construite a la main en y insérant les valeurs : on crée la requete et on fournit les valeurs ensuite, on ne s'occupe meme pas des guillemets encadrant les valeurs ou non.

    Ce qui veut dire qu'il n'est pas nécessaire de passer à PDO ?
    Je pense que les extensions mysql_ seront disponibles encore longtemps sur les hebergements, même en PHP6.
    On trouve encore des hebergements PHP4 alors qu'il est définitivement arrêté depuis 1 ans et que PHP5 existe depuis 5 ans.

    Concernant les fonctionnalités, les requêtes préparées c'est déjà sympa.
    Pour reprendre mon exemple au dessus on peut egalement executer plusieurs fois la meme requête avec des valeurs différentes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sth->execute(array(':login'=>'toto'));
    $sth->execute(array(':login'=>'titi'));
    $sth->execute(array(':login'=>'tutu'));
    On peut egalement recuperer l'ensemble des lignes d'une requetes d'un coup avec FetchAll.

    L'idée aussi quand même avec PDO c'est d'avoir une interface de programmation unique pour toutes les base des données (même si concretement on est toujours limité par les syntaxes SQL des differents SGDB).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Merci pour tes précisions
    Bon, en résumé, si j'ai bien compris, il n'est pas nécessaire de passer à PDO.
    Pourtant, PDO offre, malgré plus de lenteur, des avantages certains et une compatibilité avec le futur. Est ce bien ça ?
    Si oui, me conseillerais tu de passer à PDO sur mon site ?
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Disons que les améliorations futures seront surement ciblées sur PDO mais les phases de developpement de PHP sont quand même longues.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Merci beaucoup
    Écoute, sinon ta langue te perdra (proverbe Navajo)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Que pensez-vous du XML, faut-il passer à autre chose ?
    Par grunt2000 dans le forum XML/XSL et SOAP
    Réponses: 101
    Dernier message: 29/04/2010, 14h38
  2. [1.x] Quand faut il passer a Symfony ?
    Par Kris13 dans le forum Symfony
    Réponses: 3
    Dernier message: 23/05/2009, 15h53
  3. Faut-il passer par un wrapper?
    Par zmatz dans le forum C#
    Réponses: 11
    Dernier message: 06/06/2007, 11h28
  4. xml et base de donnée : faut-il passer obligatoirement par XML
    Par monphp dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 25/04/2007, 01h41

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