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 :

Backtricks et quotes problématiques


Sujet :

Langage Perl

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut Backtricks et quotes problématiques
    Bonjour,

    j'ai un problème au niveau de l'exécution d'une commande système... j'utilise en fait une base de données sqlite via le shell. Le problème vient des quotes. Voici le bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `./sqlite3 $db "update voc set valeur = '$3' where mot = '$2';"`;
    La variable $3 contient une phrase, c'est pour cela que je l'ai mise entre quotes. La variable $2 peut contenir des espaces, je l'ai aussi mise entre quotes.
    Au moment de l'execution les quotes sont supprimées. J'ai déjà essayé de les protéger en utilisant des backslash mais rien n'y fait.

    Avez-vous une solution à me proposer?

  2. #2
    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
    as tu essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `./sqlite3 $db "update voc set valeur = \"$3\" where mot = \"$2\";"`;
    Sinon pourquoi ne pas utiliser le module DBI ?

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut
    J'ai déjà essayé cela et ça ne fonctionne pas...
    J'aurais aimé ne pas utiliser de module pour éviter toute dépendance.
    Mais bon, je crois que je n'ai pas le choix!
    Merci quand même!

  4. #4
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my $cmd = "./sqlite3 $db update voc set valeur = \"$3\" where mot = \"$2\"";
    print "[$cmd]\n";
    system($cmd);
    Que te donnes le code ci-dessus ?

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut
    Finalement j'ai compris pourquoi la mise à jour ne fonctionnait pas. C'était à cause d'une espace en trop dans la requête... l'erreur qui n'était vraiment pas facile à trouver!

    Merci pour ton aide!

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

Discussions similaires

  1. Quote dans une requete...
    Par Isildur dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/06/2006, 11h57
  2. Problème de quote
    Par kennini dans le forum ASP
    Réponses: 4
    Dernier message: 20/11/2003, 10h40
  3. VARCHAR contenant une quote '
    Par tonyskn dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/05/2003, 20h21
  4. Sauvegarde problématique sous excel par OLE
    Par ulysse66x dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 16/04/2003, 22h23
  5. Quotes dans TFilenameEdit (RXLib)
    Par AnnSo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/01/2003, 21h26

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