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

Shell et commandes GNU Discussion :

[BASH] erreur Insert SQL


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Août 2017
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Août 2017
    Messages : 63
    Par défaut [BASH] erreur Insert SQL
    Bonsoir à tous,

    je viens vers vous car je débute en script bash et j'ai un problème

    voici le script en question
    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
    28
    29
    30
    31
    32
    33
    34
    35
    data=$(mysql -u $DB_USER -p$DB_PWD -s -N << EOF
    use $DB_NAME
    SELECT name, ip_addr, community, options, network FROM devices WHERE network <> '';
    quit
    EOF
    )
     
    sql=''
    stamp=$(date +%s)
    PIFS=IFS;
    IFS=$'\n';
    for line in $data; do
            OIFS="$IFS"
            IFS='   '
            read -a var <<< "${line}"
            IFS="$OIFS"
    #echo ${var[0]}
            if [ -n "${var[3]} | grep bandwidth" ]
            then
                    OIFS="$IFS"
                    IFS='|'
                    read -a net <<< "${var[4]}"
                    IFS="$OIFS"
                    tx=$(/bin/php /path/to/scripts/ajax.php listen=bandwidth way=OUT ip=${var[1]} com=${var[2]} device_id=${net[1]})
                    rx=$(/bin/php /path/to/scripts/ajax.php listen=bandwidth way=IN ip=${var[1]} com=${var[2]} device_id=${net[1]})
                    sql="INSERT INTO logs_test (device, name, up, down, time) VALUES ('${var[0]}', '${net[0]}', '$tx', '$rx', $stamp)"
            fi
    done
    IFS=PIFS;
     
    mysql -u $DB_USER -p$DB_PWD << EOF
    use $DB_NAME
    $sql
    quit
    EOF
    expliction: ajax.php me calcule la bande passante de mes interfaces reseaux
    ce script a pour but d'aller chercher dans une table device les infos des appareils avec lesquel je peux faire un graph de la bande passante
    des qu'il les a il passe un coup d'ajax.php pour avoir les variable rx et tx
    apres j'enregistre dans la base de donnée
    c'est là ou j'ai un problème

    voilà ce que ça me met
    ERROR 1064 (42000) at line 2: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'quit' at line 2
    N ERT NTO logs_test (device, name, up, down, time) VALUE ('N 2', 'eth0', '0.06', '0.19', 1528232650)
    les I et S ont tous disparu

    quelqu'un peut-il m'aider?

    Merci d'avance à vous

    Emmanuel

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    J'avoue que ma proposition ne donnerait pas beaucoup d'information sur l'origine du problème, mais as-tu essayé en minuscules:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                    sql="insert into logs_test (device, name, up, down, time) VALUES ('${var[0]}', '${net[0]}', '$tx', '$rx', $stamp)"
    Sinon, pour investiguer un peu, tu pourrais ajouter un echo "$sql" > /tmp/sql.log puis regarder à la loupe le contenu du fichier de trace avec od -c /tmp/sql.log ou la bonne option de "cat", afin de voir un peu mieux à quel moment survient le problème.

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    les I et S ont tous disparu
    Ils ont disparu ou n'ont jamais été là.
    Tu ne donnes pas la définition des variables et tu ne montres pas ce que sont ces I et S.

    Peux-tu préciser ces 2 points, s'il te plaît ?

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Bonjour,

    Ton erreur est ligne 10 et surtout 29 ce qui fait disparaitre les lettre PIFS.

  5. #5
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Août 2017
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Août 2017
    Messages : 63
    Par défaut
    C'est ça merci

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

Discussions similaires

  1. [SQL-Server] Erreur d'insertion Sql Server, chaine non formatée
    Par plasticplayer dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 14/08/2012, 18h28
  2. Réponses: 3
    Dernier message: 07/12/2011, 13h48
  3. [AC-2000] Erreur insertion SQL VBA avec base répliquée
    Par Tydher dans le forum VBA Access
    Réponses: 4
    Dernier message: 14/06/2011, 09h04
  4. Erreur en Insert SQL-Server
    Par soumbol dans le forum Développement
    Réponses: 9
    Dernier message: 24/05/2011, 22h06
  5. Servlet Erreur Insertion 2 fois pour une seule requete SQL
    Par cjohnson dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/03/2011, 10h58

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