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

Langage Perl Discussion :

do, prepare et execute : difference ?


Sujet :

Langage Perl

  1. #1
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut do, prepare et execute : difference ?
    Bonjour,
    Je commence à utiliser mysql avec perl, et au fil des tutos je vois des choses qui semblent faire la meme chose (quoique..)

    En particulier, j'ai du mal à comprendre la difference entre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $dbh=DBI->connect (blabla)
    $query="SELECT * FROM table";
     
    #C'est la que je ne comprend pas la difference entre :
    $sth=$dbh->do($query);
     
    #et
    $sth=$dbh->prepare($query);
    $res=$dbh->execute;
    Si quelqu'un a un lien ou une explication simple...

    Merci par avance,
    Sohnic
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

  2. #2
    Invité
    Invité(e)
    Par défaut
    De manière globale, la méthode do() est adaptée aux requêtes qui ne sont pas des SELECT.

  3. #3
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Merci pour cette confirmation. C'etait bien ce qu'il me semblait suite à la difference de comportement pour lister les enregistrements d'une requete select. Avec do, ca ne marche pas...
    J'aurais tendance à dire, dans ce cas pourquoi utiliser do, si ce n'est la simplicité d'écriture. Y aurait-il aussi des différences en terme de ressources ?

    Encore merci pour cette réponse rapide !
    Sohnic
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

  4. #4
    Invité
    Invité(e)
    Par défaut
    do() ne permet pas le "fetch" de données. Il ne fait donc pas appel au curseur, donc plus rapide.

    Par contre, pour des insertions massives (INSERT) de données, les méthodes prepare() et execute() sont utiles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sth = $dbh->prepare( "INSERT INTO table ( name ) VALUES ( ? )" );
     
    foreach $name ( qw( val1 val2 val3 val4 ) ) {
    $sth->execute( $name );
    }
    Le préparation n'est faite qu'une seule fois. Les insertions seront donc effectuées plus rapidement qu'avec une serie de do().

  5. #5
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Encore merci !
    Je prends bonne note de tous ces conseils, d'autant plus que je suis tout à fait dans le cas que tu décris... et que par facilité j'aurais surement fait un do !

    Sohnic
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/10/2012, 09h18
  2. execution different dans le debugger
    Par Söngeur dans le forum C
    Réponses: 4
    Dernier message: 17/08/2011, 18h50
  3. [PDO] PDO prepare et execute
    Par dorian53 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/10/2010, 16h53
  4. Plans d'execution differents
    Par jajaCode dans le forum Oracle
    Réponses: 13
    Dernier message: 14/12/2006, 12h29
  5. [Socket] Message different pour 2 execution similaire
    Par Erok dans le forum Entrée/Sortie
    Réponses: 24
    Dernier message: 13/05/2004, 10h49

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