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

Linux Discussion :

Bash vs MySQL


Sujet :

Linux

  1. #1
    Membre confirmé

    Inscrit en
    Mai 2002
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 93
    Par défaut Bash vs MySQL
    Bonjour,
    J'essaie de requeter ma base de données MySQL je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     #extraction des donnees de la table modif
     temp=`mysql -h localhost -u $user -p$pass -D$db -B -N -e "SELECT * FROM modif WHERE id=$1"`
     
     #importer le res dans un tablo
     res=($temp)
    puis pour consulter les valeurs de chaque colone j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo ${res[0]}
    #ou 0 est l'indice de la premiere colonne de la ligne selectionée
    jusqu'a la tous marche parfait, maintenant j'ai une table qui peut contenir des colonnes a valeur vide (NULL), alors quand je fait echo ${res[5]} où 5 l'indice de la colonne qui contient un element de valeur NULL (vide) l'echo m'affiche la valeur de la premiere colonne qui vient aprés la cinquiéme et qu'a une valeur NON NULLE.
    exemple :

    colonne1='valeur1' colonne2='valeur2' colonne3='valeur3' colonne4='valeur4' colonne5='' colonne6='' colonne7='valeur7'
    voila ce que la variabke $temp doit contenir :
    $temp=valeur1 valeur2 valeur3 valeur4 valeur7
    et donc ${res[5]} me renvoit valeur7 puisque j'ai deux valeurs NULLES et que lorsque j'importe une chaine dans un tableau bash considere que chaque espace est un separateur de colonne.

    comment je pourrais depasser ce probléme ?
    merci d'avance

  2. #2
    Membre émérite
    Avatar de nyal
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    622
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 622
    Par défaut
    Bonjour,

    Je ne peux pas tester la mais essaye de jouer sur la valeur de IFS. (en lui assignant retour a la ligne par exemple)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 62
    Par défaut
    Salut,

    Cote base de donnees je suis sous Oracle, mais je pense que cette manip devrait s'appliquer sous MySQL :

    Une solution serait de citer explicitement les colonnes dont tu as besoin dans ton SELECT pis de faire un NVL( column_name, 'NULL' ). Comme ca tu auras la chaine 'NULL' partout ou tes colonnes sont NULL.

    J'espere que ca t'aidera !
    Si jamais ca t'aide n'oublie pas ma participation de 10Euros car maintenant je fais com Microsoft je brevete tout !!! lol

    a+
    Noki

    Et vive Linux !!!!

  4. #4
    Membre confirmé

    Inscrit en
    Mai 2002
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 93
    Par défaut
    :o :o

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

Discussions similaires

  1. se connecter à mysql avec expect send bash
    Par paissad dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 13/11/2010, 03h00
  2. Réponses: 11
    Dernier message: 04/08/2010, 14h39
  3. Script bash + mysql
    Par pierrickj dans le forum Administration système
    Réponses: 1
    Dernier message: 22/04/2009, 11h54
  4. [bash] Recuperer des données d'une base MYSQL
    Par johnson95 dans le forum Linux
    Réponses: 1
    Dernier message: 29/12/2008, 10h36
  5. Injection de donnée MySQL via script bash
    Par loopback dans le forum Linux
    Réponses: 9
    Dernier message: 03/11/2007, 11h15

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