p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité régulier
    Inscrit en
    janvier 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 13
    Points : 6
    Points
    6

    Par défaut Requête SQL avec une variable

    Bonjour,

    je souhaiterais exécuter une série de requête SQL différente à l'aide d'une boucle et d'un tableau contenant différentes valeurs (en l'occurence ici, les noms de mes tables SQL). Pour cela, j'ai besoin de mettre une variable dans ma requête au lieu de l'écrire de manière statique.

    Bref voici la partie de mon code pour comprendre ce que je veux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    my @tables = ("equipements","users","liaisons");
     
    foreach my $tables_master ($tables){
     
    my $enregistrements_master = $dbd_master->prepare('SELECT id FROM' .$tables_master)
    or die 'Impossible de préparer la requête : ' .$dbd_master->errstr;
    $enregistrements_master->execute
    or die 'Impossible d\'exécuter la requête : '.$enregistrements_master->errstr;
    $enregistrements_master->rows;
    ... et me dit que j'ai une erreur de syntaxe, sauf que je ne connais pas la syntaxe avec une variable, et je ne trouve pas la solution dans les cours perl...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 at test_replication_beta.pl line 41.
    Impossible d'exécuter la requête : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 at test_replication_beta.pl line 41.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    17 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 17 586
    Points : 492 388
    Points
    492 388

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'SELECT id FROM' .$tables_master
    Il manque un espace après le FROM, du coup ta requête SQL est incorrect.

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  3. #3
    Invité régulier
    Inscrit en
    janvier 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 13
    Points : 6
    Points
    6

    Par défaut

    J'ai mis un espace entre le FROM et le ' mais j'ai toujours la même erreur... :/

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    17 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 17 586
    Points : 492 388
    Points
    492 388

    Par défaut

    Peux-tu nous montrer ce que tu as fait ? Le message d'erreur est assez clair, erreur de syntaxe SQL. Donc soit ta requête SQL n'est pas bonne, soit tu crées une requête SQL incorrecte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    my @tables = ("equipements","users","liaisons");
     
    foreach my $tables_master (@tables) {
      my $requete = 'SELECT id FROM ' . $tables_master;  
      my $enregistrements_master = $dbd_master->prepare($requete)
        or die 'Impossible de préparer la requête : ' .$dbd_master->errstr;
      $enregistrements_master->execute
        or die 'Impossible d\'exécuter la requête : '.$enregistrements_master->errstr;
      $enregistrements_master->rows;

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  5. #5
    Invité régulier
    Inscrit en
    janvier 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : janvier 2005
    Messages : 13
    Points : 6
    Points
    6

    Par défaut

    Ok c'est bon ça marche... Il manquait effectivement un espace, mais je faisais une autre erreur qui se situait au niveau de ma boucle (et donc générait une mauvaise requête...)

    Il fallait écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach my $tables_master (@tables){
    ...et non pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach my $tables_master ($tables){
    Merci pour ton aide.

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

Discussions similaires

  1. requête SQL avec une variable
    Par julienmop dans le forum PDO
    Réponses: 3
    Dernier message: 09/06/2015, 11h27
  2. passer du texte + une requête sql dans une variable
    Par Giantrick dans le forum Fonctions
    Réponses: 3
    Dernier message: 18/04/2007, 18h15
  3. Comment stocker une requête sql dans une variable ?
    Par innova dans le forum MS SQL-Server
    Réponses: 5
    Dernier message: 26/10/2006, 10h01
  4. Requête selection avec une variable de date
    Par kahmsin dans le forum Access
    Réponses: 7
    Dernier message: 20/11/2005, 19h38
  5. Requête SQL avec une réponse unique
    Par Glutinus dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/07/2005, 16h35

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