将Arduino变量值插入MySQL表

时间:2016-02-15 16:38:47

标签: c++ mysql arduino arduino-uno arduino-ide

我试图将Arduino中的变量值插入到MySQL数据库表中,我尝试了不同的方法,但它没有成功。

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

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;

  }  

感谢所有答案......

2 个答案:

答案 0 :(得分:0)

替换这个:

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

使用:

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

答案 1 :(得分:0)

问题是您需要将变量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。由于它是内置函数,因此无需在代码中包含任何其他标头。