将 Arduino 变量值插入 MySQL table

Insert Arduino variable value into MySQL table

我正在尝试将 Arduino 的变量值插入 MySQL 数据库 table,我尝试了不同的方法但没有成功。

有人可以帮我解决下面这段代码吗?

void loop() {

 unsigned long var =(millis()/1000);

 if(var%30 == 0)
  {

  var = (var==0)?1:var;

  char INSERT_SQL[] = "INSERT INTO Meter.consumption VALUES ("var");";

  MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);

  cur_mem->execute(INSERT_SQL);

  delete cur_mem;

  }  

感谢所有答案...

替换为:

  char INSERT_SQL[] = "INSERT INTO Meter.consumption VALUES ("var");";

与:

  char INSERT_SQL[] = "INSERT INTO Meter.consumption VALUES ('var');";

问题是您需要将变量 var 与 SQL 命令连接起来。为此,您可以结合使用辅助变量 querysprintf 函数来构建正确的 INSERT 命令。

替换为:

char INSERT_SQL[] = "INSERT INTO Meter.consumption VALUES ("d");";
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
cur_mem->execute(INSERT_SQL);

有:

char INSERT_SQL[] = "INSERT INTO Meter.consumption VALUES (%d);";
char query[255];
sprintf(query, INSERT_SQL, var);
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
cur_mem->execute(query);

请注意,尽管 sprintf 是 Arduino 中未记录的函数,但它的工作方式与 C 中可用的函数类似。您可以查看更多详细信息 here。由于它是一个 built-in 函数,因此无需在您的代码中包含任何额外的 header。