Alors ça fait longtemps que j'ai plus coder de l’Arduino, et j'avoue que je suis perdu pour des c***neries..
En gros j'aimerais juste mettre un ESP32 connecter sur une BBD mysql ( ceci marche sans soucis )
Par contre j'aimerais donc adapté les données envoyer et c'est la ou c'est le soucis :
char INSERT_SQL[] = "INSERT INTO lora.incoming(who, msg) VALUES ";
int num = 0;
void setup()
{
Serial.begin(115200);
}
void loop()
{
INSERT_SQL = INSERT_SQL + "('lora', '" + num + "');";
Serial.println(INSERT_SQL);
num++;
delay(2000);
}
Et ceci me sort un joli :
invalid operands of types 'char [46]' and 'char*' to binary 'operator+'
Donc voila, je sais que c'est tous con, j'ai déjà cherché des réponses sur google et toujours le même soucis..
A savoir que je voudrais aussi pouvoir y intégré des float et des double
soit vous passez par la classe String qui sait concatener, soit vous utilisez sprintf() par exemple (sinon si vous voulez être économe en mémoire, vous utilisez itoa() pour convertir num en chaîne ASCII et vous utilisez strcat() pour bâtir un buffer
const size_t bufferSize = 100;
char commandBuffer[bufferSize];
String commmandString;
int num = 10;
void setup() {
Serial.begin(115200);
// avec une String
commmandString.reserve(100); // évite le morcellement mémoire
commmandString = "INSERT INTO lora.incoming(who, msg) VALUES ";
commmandString += "('lora', '";
commmandString += num ;
commmandString += "');";
Serial.println(commmandString.c_str());
// avec une cString et les fonctions associées
size_t n = snprintf(commandBuffer, bufferSize, "INSERT INTO lora.incoming(who, msg) VALUES ('lora', '%d');", num);
if (n < bufferSize - 1)
Serial.println(commandBuffer);
else
Serial.println(F("Buffer trop petit"));
}
void loop() {}