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

SGBD Perl Discussion :

Plusieurs select dans un script perl


Sujet :

SGBD Perl

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut Plusieurs select dans un script perl
    Bonjour,

    J'aimerais savoir comment passer plusieurs SELECT dans un script perl.

    Voici mon code fonctionnel pour un SELECT:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #!/usr/bin/perl -w
     
    use DBI;
     
    #DB Connect
    my $dbrapport = "dbi:mysql:maBD";
    my $username = "uname";
    my $password = "pswd";
     
    my $dbconnect = DBI->connect($dbrapport, $username, $password) or  die "Database connection not made: $DBI::errstr";
     
    my $sql = "SELECT date,nbr_subs INTO OUTFILE '/var/www/maDB/csv/data1.csv'
    FIELDS TERMINATED BY ','
    FROM BTS_SUBSCRIBER WHERE Ville='Acton-Vale POP' ORDER BY date DESC";
    my $sth = $dbconnect->prepare($sql);
    $sth->execute();
    J'ai essayer ceci mais ça ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #!/usr/bin/perl -w
     
    use DBI;
     
    #DB Connect
    my $dbrapport = "dbi:mysql:maBD";
    my $username = "uname";
    my $password = "pswd";
     
    my $dbconnect = DBI->connect($dbrapport, $username, $password) or  die "Database connection not made: $DBI::errstr";
     
    my $sql = 
     
    "
     
    SELECT date,nbr_subs INTO OUTFILE '/var/www/maDB/csv/data1.csv'
    FIELDS TERMINATED BY ','
    FROM BTS_SUBSCRIBER WHERE Ville='Acton-Vale POP' ORDER BY date DESC;
     
    SELECT date,nbr_subs INTO OUTFILE '/var/www/maDB/csv/data2.csv'
    FIELDS TERMINATED BY ','
    FROM BTS_SUBSCRIBER WHERE Ville='Alma POP' ORDER BY date DESC;
     
    ";
     
    my $sth = $dbconnect->prepare($sql);
    $sth->execute();
    Comment faire pour passer plusieurs select dans mon script?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut
    J'ai trouver une façon qui fonctionne mais je ne suis vraiment pas sur que ce soit la façon de faire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #!/usr/bin/perl -w
     
    use DBI;
     
    #DB Connect
    my $dbrapport = "dbi:mysql:maBD";
    my $username = "uname";
    my $password = "pswd";
     
    my $dbconnect = DBI->connect($dbrapport, $username, $password) or  die "Database connection not made: $DBI::errstr";
     
    my $sql = "SELECT date,nbr_subs INTO OUTFILE '/var/www/maDB/csv/data1.csv'
    FIELDS TERMINATED BY ','
    FROM BTS_SUBSCRIBER WHERE Ville='Acton-Vale POP' ORDER BY date DESC";
    my $sth = $dbconnect->prepare($sql);
    $sth->execute();
     
    my $sql1 = "SELECT date,nbr_subs INTO OUTFILE '/var/www/maDB/csv/data2.csv'
    FIELDS TERMINATED BY ','
    FROM BTS_SUBSCRIBER WHERE Ville='Alma POP' ORDER BY date DESC";
     
    my $sth1 = $dbconnect->prepare($sql1);
    $sth1->execute();
    Comme il faut que je me reconnecte à la bd avant chaque execute, j'ai l'impression qu'il y aurait un moyen de me connecter une seule fois et faire le nombre de execute que j'ai besoin, mais je ne sais pas trop comment faire. Est-ce que quelqu'un aurait une idée?

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Ta façon de faire est OK.
    Tu t'es connecté une seule fois. C'est suffisant.

    Pour Chaque requête, tu dois faire prepare, execute comme tu l'as fait.
    Pour afficher maintenant des resultats, à chaque reque, tu dois aussi faire fetch_XXXX comme dans la doc DBI. Tu peux aussi lire mon article sur Perl et DBI dans la rubrique tutoriel de Perl.

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Tu peux faire un seul prepare et deux execute en utilisant les Placeholders, c'est la méthode correcte dans ton cas.

    --
    Jedaï

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut
    Bonjour,

    Ça fonctionne très bien.

    Merci beaucoup.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/09/2006, 16h28
  2. Include PHP dans un script Perl
    Par Jim_Nastiq dans le forum Web
    Réponses: 2
    Dernier message: 16/05/2006, 15h14
  3. Comment lancer un script perl dans un script perl
    Par kiza dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2005, 21h02
  4. [perl/CGI] Ecrire du HTML dans un script perl
    Par LE NEINDRE dans le forum Web
    Réponses: 3
    Dernier message: 02/08/2005, 14h50
  5. Plusieurs SELECT dans l'ouverture d'une connection
    Par pmboutteau dans le forum ASP
    Réponses: 6
    Dernier message: 01/04/2005, 11h09

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