Bonjour à tous,
En faisant une commande SQL insert into, j'ai cette erreur qui apparait :
INSERT INTO base_de_donnees.table (jour,mois,annee,heure,minute,seconde,vitesse,model) VALUES (16,1,24,19,30,26,1,A)
Error: 43 = Unknown column 'A' in 'field list'.
Voici le programme, et pour info les nom de colonne de table dans la base de données correspondent bien à "jour", "mois", "annee", "heure", "minute", "seconde", "vitesse" et "model" :
#include <Wire.h>
#include <SPI.h>
#include <simpleRTC.h>
#include <UIPEthernet.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
#include <ConnexParams.h>
EthernetClient client;
MySQL_Connection conn(&client);
MySQL_Cursor* cursor;
unsigned long previousMillis2;
char insert_Sql_1[140];
uint8_t a,m,j,hh,mm,ss; //Déclaration de variable pour extraireDateCompil() et extraireHeureCompil()
uint8_t annee1,mois1,jour1,heure1,minute1,seconde1;
#define bt_var2 4 // affectation de la broche var2
char var2; // déclaration de la variable var2 de type char
boolean etat; // déclaration de la variable etat de booléen
int tabDH[5];
int var1 = 0;
void setup () {
Serial.begin(9600);
Wire.begin(); // Initialisation de la communication I2C
SPI.begin();
pinMode(bt_var2, INPUT_PULLUP); // Initialisation de bt_var2 en mode entrée avec resistance pull-up
extraireDateCompil(__DATE__, &a, &m, &j); // Extraction de la date du pc avec la fonction extraireDateCompil()
extraireHeureCompil(__TIME__, &hh, &mm, &ss); // Extraction de l'heure du pc avec la fonction extraireHeureCompil()
uint8_t mac[6] = {0x00,0x01,0x02,0x03,0x04,0x05};
Ethernet.begin(mac);
Serial.print("localIP: ");
Serial.println(Ethernet.localIP());
Serial.print("subnetMask: ");
Serial.println(Ethernet.subnetMask());
Serial.print("gatewayIP: ");
Serial.println(Ethernet.gatewayIP());
Serial.print("dnsServerIP: ");
Serial.println(Ethernet.dnsServerIP());
Serial.print("Connecting to SQL... ");
if (conn.connect(serverAddress, 3306, user_BD, passw_BD))
Serial.println("OK.");
else
Serial.println("FAILED.");
// create MySQL cursor object
cursor = new MySQL_Cursor(&conn);
// Print ESP8266 Local IP Address
Serial.println(Ethernet.localIP());
Serial.println();
}
void loop () {
var1 = analogRead(A4);
// Test de létat du bouton pour affecter la variable var2
etat=digitalRead(bt_var2);
if ((etat==LOW) && (var1 < 10))
{
var2 = 'D';
}
else if ((etat==HIGH) && (var1 < 10))
{
var2 = 'A';
}
else
{
var2 = 'M';
}
// Utilisation de millis pour gérer la cadence d'enregistrement
// 10000 = 10 seconde
static uint32_t ref = 0;
if (millis() - ref >= 10000)
{
ref += 10000;
if (RTC.actualiser())// Actualisation du module RTC avant recuperation des données
{
// Affectation des variables date et heure avec le module RTC
annee1 = RTC.annee();
mois1 = RTC.mois();
jour1 = RTC.jour();
heure1 = RTC.heure();
minute1 = RTC.minute();
seconde1 = RTC.seconde();
envoi(jour1, mois1, annee1, heure1, minute1, seconde1, var1,var2);
}
else
{
Serial.println("pb acces horloge");
}
}
}
// Fonction extraireDateCompil() pour extraire la date
void extraireDateCompil(char dateCompil[], uint8_t *annee, uint8_t *mois, uint8_t *jour)
{
*mois = extraireMois(&dateCompil[0]);
*jour = extraireNombre2Car(&dateCompil[4]);
*annee = extraireNombre2Car(&dateCompil[9]);
}
// Fonction extraireDateCompil() pour extraire l'heure
void extraireHeureCompil(char heureCompil[], uint8_t *heure, uint8_t *minute, uint8_t *seconde)
{
*heure = extraireNombre2Car(&heureCompil[0]);
*minute = extraireNombre2Car(&heureCompil[3]);
*seconde = extraireNombre2Car(&heureCompil[6]);
}
// Fonction pour Passer les mois en chaine de caractères en numéro
uint8_t extraireMois(char chaine[])
{
uint8_t m = 0;
if (chaine[0] == 'J')
{
if (chaine[1] == 'a') m = 1;
else if (chaine[1] == 'u' && chaine[2] == 'n') m = 6;
else if (chaine[1] == 'u' && chaine[2] == 'l') m = 7;
}
else if (chaine[0] == 'F') m = 2;
else if (chaine[0] == 'M')
{
if (chaine[2] == 'r') m = 3;
else if (chaine[2] == 'y') m = 5;
}
else if (chaine[0] == 'A')
{
if (chaine[1] == 'p') m = 4;
else if (chaine[1] == 'u') m = 8;
}
else if (chaine[0] == 'S') m = 9;
else if (chaine[0] == 'O') m = 10;
else if (chaine[0] == 'N') m = 11;
else if (chaine[0] == 'D') m = 12;
return m;
}
// Fonction pour construire un nombre a deux chiffres
uint8_t extraireNombre2Car(char chaine[])
{
return extraireChiffre(chaine[0]) * 10 + extraireChiffre(chaine[1]);
}
// Fonction de conversion en chiffre
uint8_t extraireChiffre(char c)
{
return ('0' <= c && c <= '9') ? c - '0' : 0;
}
void envoi(int jour1, int mois1, int annee1, int heure1, int minute1, int seconde1, int vitesse1, char var2) {
int interv = 0;
for (int i = 0; i < 3; i++) {
unsigned long currentMillis2 = millis();
if (currentMillis2 - previousMillis2 >= interv) {
// save the last time you updated the DHT values
previousMillis2 = currentMillis2;
if (!conn.connected()) {
if (conn.connect(serverAddress, 3306, user_BD, passw_BD)) {
Serial.println("connection OK.");
} else {
Serial.println("connection FAILED.");
interv = 60000;
return;
}
}
}
}
sprintf(insert_Sql_1, "INSERT INTO u984373661_prem_db.chain_peint (jour,mois,annee,heure,minute,seconde,vitesse,model) VALUES (%d,%d,%d,%d,%d,%d,%d,%c)", jour1,mois1,annee1,heure1,minute1,seconde1,vitesse1,var2);
Serial.println(insert_Sql_1);
cursor->execute(insert_Sql_1);
if (conn.connected()) {
conn.close();
}
}
Merci d'avance