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

Discussion: Python et MySQL [MariaDB]

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2009
    Messages : 7
    Points : 6
    Points
    6

    Par défaut Python et MySQL

    Salut à tous!

    Je voudrais avoir un coup de main de votre part, car je galère pour mettre au point mon script python.

    Je précise que je suis novice avec quelques notions relatives issus de mes essais divers et autres bidouillages.

    Donc pour mon soucis,

    J'ai fait un script en python qui interroge un Arduino via le port Serial, lit la réponse et l'envoi dans une BDD MySQL.

    Je vous donne le Pgm Arduino, le script Python et l'imprime écran de mon retour d'erreur:

    Code Arduino :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    #include "EmonLib.h"             // Include Emon Library
    
    EnergyMonitor emon1,emon2,emon3,emon4,emon5,emon6,emon7,emon8,emon9,emon10,emon11,emon12 ;             // Create an instance
    
    int message = 0;
    int ledPin = 13;
    
    void capture()
    {
      digitalWrite(ledPin, HIGH);
      
      emon1.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon2.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon3.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon3.calcVI(20,2000);           // Print out all variables (realpower, apparent power, Vrms, Irms, power factor)
      emon4.calcVI(20,2000);           // Print out all variables (realpower, apparent power, Vrms, Irms, power factor)
      emon5.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon6.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon7.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon8.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon9.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon10.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon11.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon12.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      
      float realPower       = emon1.realPower;        //extract Real Power into variable
      float apparentPower   = emon1.apparentPower;    //extract Apparent Power into variable
      float powerFActor     = emon1.powerFactor;      //extract Power Factor into Variable
      float supplyVoltage   = emon1.Vrms;             //extract Vrms into Variable
      float Irms            = emon1.Irms;             //extract Irms into Variable
    
      digitalWrite(ledPin, LOW);
      
    }
    void envoi()
    { 
    
      // passage du float en int
      int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12;
      a1 = ((int) emon1.realPower / random(100,350));
      a2 = ((int) emon2.realPower / random(100,350));
      a3 = ((int) emon3.realPower / random(100,350));
      a4 = ((int) emon4.realPower / random(100,350));
      a5 = ((int) emon5.realPower / random(100,350));
      a6 = ((int) emon6.realPower / random(100,350));
      a7 = ((int) emon7.realPower / random(100,350));
      a8 = ((int) emon8.realPower / random(100,350));
      a9 = ((int) emon9.realPower / random(100,350));
      a10 = ((int) emon10.realPower / random(100,350));
      a11 = ((int) emon11.realPower / random(100,350));
      a12 = ((int) emon12.realPower / random(100,350));
      
      Serial.print(", "); 
      Serial.print((char) 34);
      Serial.print(a1);
      Serial.print((char) 34);
      Serial.print(", ");
      Serial.print((char) 34);
      Serial.print(a2);
      Serial.print((char) 34);
      Serial.print(", ");
      Serial.print((char) 34);
      Serial.print(a3);
      Serial.print((char) 34);
      Serial.print(", ");
      Serial.print((char) 34);
      Serial.print(a4);
      Serial.print((char) 34);
      Serial.print(", ");
      Serial.print((char) 34);
      Serial.print(a5);
      Serial.print((char) 34);
      Serial.print(", ");
      Serial.print((char) 34);
      Serial.print(a6);
      Serial.print((char) 34);
      Serial.print(", ");
      Serial.print((char) 34);
      Serial.print(a7);
      Serial.print((char) 34);
      Serial.print(", ");
      Serial.print((char) 34);
      Serial.print(a8);
      Serial.print((char) 34);
      Serial.print(", ");
      Serial.print((char) 34);
      Serial.print(a9);
      Serial.print((char) 34);
      Serial.print(", ");
      Serial.print((char) 34);
      Serial.print(a10);
      Serial.print((char) 34);
      Serial.print(", ");
      Serial.print((char) 34);
      Serial.print(a11);
      Serial.print((char) 34);
      Serial.print(", ");
      Serial.print((char) 34);
      Serial.print(a12);
      Serial.print((char) 34);
      Serial.println(")");
      
    }
    void setup()
    {  
      Serial.begin(57600);
      pinMode(ledPin, OUTPUT);
      
      // Ref Voltage
      emon1.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon2.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon3.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon4.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon5.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon6.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon7.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon8.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon9.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon10.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon11.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon12.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
    
      // Pin Current
      emon1.current(1, 111.1);       // Current: input pin, calibration.
      emon2.current(2, 111.1);       // Current: input pin, calibration.
      emon3.current(3, 111.1);       // Current: input pin, calibration.
      emon4.current(4, 111.1);       // Current: input pin, calibration.
      emon5.current(5, 111.1);       // Current: input pin, calibration.
      emon6.current(6, 111.1);       // Current: input pin, calibration.
      emon7.current(7, 111.1);       // Current: input pin, calibration.
      emon8.current(8, 111.1);       // Current: input pin, calibration.
      emon9.current(9, 111.1);       // Current: input pin, calibration.
      emon10.current(10, 111.1);       // Current: input pin, calibration.
      emon11.current(11, 111.1);       // Current: input pin, calibration.
      emon12.current(12, 111.1);       // Current: input pin, calibration.
      
    }
    
    
    void loop() {
      if (Serial.available())  {
        message = Serial.read()-'0';  // on soustrait le caractère 0, qui vaut 48 en ASCII
    
        switch (message) { 
        case 2: 
           capture();
           break;
        case 5: 
           envoi();
           break;
        }
      }
      
    }
    Script Python :

    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
    import mysql.connector
    import serial
    import sys
    import time
    from datetime import datetime
    ser = serial.Serial('/dev/ttyACM0', 57600)
    time.sleep(1)
    ser.write('2')
    print("Calcul en cours !")
    time.sleep(60)
    ser.write('5')
    print("Reception !")
    i=1
    while i < 2 :
          reference = ("(\""+datetime.now().strftime("%Y/%m/%d")+"\", \""+datetime.now().strftime("%H:%M")+"\""+ser.readline())
          i = i +1
    print(reference)
    time.sleep(2)
    conn = mysql.connector.connect(host="localhost",
                                   user="*******",
    			       password="******",
                                   database="Monitor")
     
    cursor = conn.cursor()
     
    print("Database !")
     
    cursor.execute("""INSERT INTO DATA (Jour, Heure, Capteur1, Capteur2, Capteur3, Capteur4, Capteur5, Capteur6, Capteur7, Capteur8, Capteur9, Capteur10, Capteur11, Capteur12) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);""", reference)
     
    conn.commit()
     
    conn.close()
    et le retour d'erreur:

    pi@orangepizero:~# python BDD.py
    Calcul en cours !
    Reception !
    ("2019/03/08", "12:49", "-201", "86", "-159", "114", "116", "245", "200", "119", "107", "87", "90", "106")
    Database !

    Traceback (most recent call last):
    File "BDD.py", line 28, in <module>
    cursor.execute("""INSERT INTO DATA (Jour, Heure, Capteur1, Capteur2, Capteur3, Capteur4, Capteur5, Capteur6, Capteur7, Capteur8, Capteur9, Capteur10, Capteur11, Capteur12) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);""", reference)
    File "/usr/lib/python2.7/dist-packages/mysql/connector/cursor.py", line 559, in execute
    self._handle_result(self._connection.cmd_query(stmt))
    File "/usr/lib/python2.7/dist-packages/mysql/connector/connection.py", line 494, in cmd_query
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
    File "/usr/lib/python2.7/dist-packages/mysql/connector/connection.py", line 396, in _handle_result
    raise errors.get_exception(packet)
    mysql.connector.errors.ProgrammingError: 1064 (42000): 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 '%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)' at line 1

    pi@orangepizero:~#
    Je patauge et après avoir cherché sur le web, je me tourne vers vous!

    D'avance je vous remercie!

    PS: si vous avez également de proposition pour alléger, améliorer les scripts/programmes, je vous remercie aussi!

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2009
    Messages : 7
    Points : 6
    Points
    6

    Par défaut

    Salut à tous!

    Après encore 1 journée à essayé tout plein de truc, j'ai finalement réussi à atteindre mon objectif!

    Pour ceux que cela intéresseraient, voici mes codes fonctionnels :

    ARDUINO :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    #include "EmonLib.h"             // Include Emon Library
    
    EnergyMonitor emon1,emon2,emon3,emon4,emon5,emon6,emon7,emon8,emon9,emon10,emon11,emon12 ;             // Create an instance
    
    int message = 0;
    int ledPin = 13;
    
    void capture()
    {
      digitalWrite(ledPin, HIGH);
      
      emon1.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon2.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon3.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon3.calcVI(20,2000);           // Print out all variables (realpower, apparent power, Vrms, Irms, power factor)
      emon4.calcVI(20,2000);           // Print out all variables (realpower, apparent power, Vrms, Irms, power factor)
      emon5.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon6.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon7.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon8.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon9.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon10.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon11.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      emon12.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
      
      float realPower       = emon1.realPower;        //extract Real Power into variable
      float apparentPower   = emon1.apparentPower;    //extract Apparent Power into variable
      float powerFActor     = emon1.powerFactor;      //extract Power Factor into Variable
      float supplyVoltage   = emon1.Vrms;             //extract Vrms into Variable
      float Irms            = emon1.Irms;             //extract Irms into Variable
    
      digitalWrite(ledPin, LOW);
      
    }
    void envoi()
    { 
    
      // passage du float en int
      int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12;
      a1 = ((int) emon1.realPower / random(100,350));
      a2 = ((int) emon2.realPower / random(100,350));
      a3 = ((int) emon3.realPower / random(100,350));
      a4 = ((int) emon4.realPower / random(100,350));
      a5 = ((int) emon5.realPower / random(100,350));
      a6 = ((int) emon6.realPower / random(100,350));
      a7 = ((int) emon7.realPower / random(100,350));
      a8 = ((int) emon8.realPower / random(100,350));
      a9 = ((int) emon9.realPower / random(100,350));
      a10 = ((int) emon10.realPower / random(100,350));
      a11 = ((int) emon11.realPower / random(100,350));
      a12 = ((int) emon12.realPower / random(100,350));
      
      Serial.print(a1);
      Serial.print(", ");
      Serial.print(a2);
      Serial.print(", ");
      Serial.print(a3);
      Serial.print(", ");
      Serial.print(a4);
      Serial.print(", ");
      Serial.print(a5);
      Serial.print(", ");
      Serial.print(a6);
      Serial.print(", ");
      Serial.print(a7);
      Serial.print(", ");
      Serial.print(a8);
      Serial.print(", ");
      Serial.print(a9);
      Serial.print(", ");
      Serial.print(a10);
      Serial.print(", ");
      Serial.print(a11);
      Serial.print(", ");
      Serial.println(a12);
      
    }
    void setup()
    {  
      Serial.begin(57600);
      pinMode(ledPin, OUTPUT);
      
      // Ref Voltage
      emon1.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon2.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon3.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon4.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon5.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon6.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon7.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon8.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon9.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon10.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon11.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon12.voltage(0, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
    
      // Pin Current
      emon1.current(1, 111.1);       // Current: input pin, calibration.
      emon2.current(2, 111.1);       // Current: input pin, calibration.
      emon3.current(3, 111.1);       // Current: input pin, calibration.
      emon4.current(4, 111.1);       // Current: input pin, calibration.
      emon5.current(5, 111.1);       // Current: input pin, calibration.
      emon6.current(6, 111.1);       // Current: input pin, calibration.
      emon7.current(7, 111.1);       // Current: input pin, calibration.
      emon8.current(8, 111.1);       // Current: input pin, calibration.
      emon9.current(9, 111.1);       // Current: input pin, calibration.
      emon10.current(10, 111.1);       // Current: input pin, calibration.
      emon11.current(11, 111.1);       // Current: input pin, calibration.
      emon12.current(12, 111.1);       // Current: input pin, calibration.
      
    }
    
    
    void loop() {
      if (Serial.available())  {
        message = Serial.read()-'0';  // on soustrait le caractère 0, qui vaut 48 en ASCII
    
        switch (message) { 
        case 2: 
           capture();
           break;
        case 5: 
           envoi();
           break;
        }
      }
      
    }
    PYTHON :
    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
     
    import mysql.connector
    import serial
    import sys
    import time
    from datetime import datetime
    ser = serial.Serial('/dev/ttyACM0', 57600)
    time.sleep(1)
    ser.write('2')
    print("Calcul en cours !")
    time.sleep(60)
    ser.write('5')
    print("Reception !")
    i=1
    while i < 2 :
          line = ser.readline()
          i = i +1
    print("Transformation !")
    line = line.replace('-','')
    pieces = line.split(", ")  
    print("Database !") 
    conn = mysql.connector.connect(host="localhost",
                                   user="******",
    			       password="*******",
                                   database="Monitor")
    cursor = conn.cursor()
    cursor.execute("INSERT INTO DATA (Jour,Heure,Capteur1,Capteur2,Capteur3,Capteur4,Capteur5,Capteur6,Capteur7,Capteur8,Capteur9,Capteur10,Capteur11,Capteur12) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", (datetime.now().strftime("%Y/%m/%d"),datetime.now().strftime("%H:%M"),pieces[0],pieces[1],pieces[2],pieces[3],pieces[4],pieces[5],pieces[6],pieces[7],pieces[8],pieces[9],pieces[10],pieces[11]))
    conn.commit()
    conn.close()

  3. #3
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    février 2011
    Messages
    4 039
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : février 2011
    Messages : 4 039
    Points : 12 134
    Points
    12 134

    Par défaut

    Salut toufous35.

    Ce forum est consacré exclusivement à MySql, voire aussi à MariaDB.
    Nous ne sommes pas là pour résoudre des problèmes de Python ou d'Arduino, mais tout ce qui est consacré à MySql.
    Si votre concerne exclusivement Arduino, vous devez vous reporter au forum "raspberry - Arduino" et non à mysql.
    Dans le cas contraire, vous devez fournir que la requête musql qui pose problème et non un script phyton.
    Nous ne sommes pas censés connaitre tous les langages informatiques.
    Et même si a priori vous utilisez PHP, ce qui n'est pas le cas, il existe un autre forum consacré à PHP et MySql.

    Le message d'erreur stipule que vous avez une erreur de syntaxe dans votre requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql.connector.errors.ProgrammingError: 1064 (42000): 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 '%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)' at line 1
    A priori, la ligne qui pose problème est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cursor.execute("INSERT INTO DATA (Jour,Heure,Capteur1,Capteur2,Capteur3,Capteur4,Capteur5,Capteur6,Capteur7,Capteur8,Capteur9,Capteur10,Capteur11,Capteur12) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", (datetime.now().strftime("%Y/%m/%d"),datetime.now().strftime("%H:%M"),pieces[0],pieces[1],pieces[2],pieces[3],pieces[4],pieces[5],pieces[6],pieces[7],pieces[8],pieces[9],pieces[10],pieces[11]))
    Nous n'avons pas le descriptif de votre table "data" et nous devons deviner le type de vos colonnes.
    Je vois que vous utilisez les guillemets pour délimiter votre requête. En MySql, c'est l'apostrophe qui est utilisé et non le guillemet.
    Si dans votre requête vous utilisez le guillemet, vous devez faire en sorte que celui-ci ne soit pas interpréter comme une fin de chaîne de caractères.
    Autrement dit, vous devez utilisez l'escape "\" devant chaque guillemet ou bien utiliser l'apostrophe.
    Pour les chaînes de caractères, vous devez les encadrer par une apostrophe.
    Il est préférable d'encadrer les noms des colonnes par l'apostrophe inversée (touche alt gt + 8).
    Je vous donne un exemple simplifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cursor.execute("INSERT INTO `DATA`(`Jour`,`Heure`,`Capteur1`, ...) VALUES ('%s','%s','%s',...)", (datetime.now().strftime("%Y/%m/%d"),datetime.now().strftime("%H:%M"),pieces[0],...))
    Une autre solution est de préparer votre requête avant de l'exécuter.
    Autrement dit, vous concaténez toutes les valeurs dans votre requête.
    Ainsi visuellement, vous saurez s'il manque des apostrophes ou pas.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

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

Discussions similaires

  1. [Python 2.X] Données Python vers MySQL
    Par TristanVauban dans le forum Général Python
    Réponses: 1
    Dernier message: 20/03/2017, 17h11
  2. Réponses: 4
    Dernier message: 16/06/2015, 17h14
  3. Python et MySQL -> Duplicate entry '0' for key 'PRIMARY
    Par devilsnake88 dans le forum Général Python
    Réponses: 1
    Dernier message: 13/01/2013, 22h15
  4. Python et MySQL retourne ('abc.defghij',) au lieux de abc.defghij
    Par devilsnake88 dans le forum Général Python
    Réponses: 0
    Dernier message: 12/01/2013, 11h14
  5. Affichage image en html avec script python et mysql blob
    Par senacle dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 18/11/2009, 19h22

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