代码之家  ›  专栏  ›  技术社区  ›  Noorallah Al-herz

将Arduino变量值插入MySQL表

  •  1
  • Noorallah Al-herz  · 技术社区  · 9 年前

    我正在尝试将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 回复  |  直到 9 年前
        1
  •  0
  •   Arton Dorneles    9 年前

    问题是您需要连接变量 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);
    

    请注意,尽管 把格式数据写成串 是Arduino中的一个未记录的函数,它的工作方式与C中的类似。您可以查看更多详细信息 here 。由于它是一个内置函数,因此不需要在代码中包含任何额外的标头。

        2
  •  0
  •   Gouda Elalfy    9 年前

    替换此:

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

    具有:

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