我试图将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;
}
感谢所有答案......
答案 0 :(得分:0)
替换这个:
char INSERT_SQL[] = "INSERT INTO Meter.consumption VALUES ("var");";
使用:
char INSERT_SQL[] = "INSERT INTO Meter.consumption VALUES ('var');";
答案 1 :(得分:0)
问题是您需要将变量var
与SQL命令连接起来。为此,您可以将辅助变量query
与sprintf
函数结合使用,以构建正确的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。由于它是内置函数,因此无需在代码中包含任何其他标头。