当我尝试将我的变量插入到我的数据库中时,它将作为零插入而不是预期值

时间:2016-01-11 13:08:14

标签: mysql c

这是我的代码中的一个例子。我试图将currentTemp插入到我的数据库中,但是我的数据库中的条目因插入而不是变量currentTemp的值而返回0。谁能告诉我如何正确地做到这一点。

#include <unistd.h>  
#include <stdio.h>   
#include <mysql/mysql.h>
#include <my_global.h>

int main (int argc, char* argv[]){

int val = 280;
int currentTemp = (val / 4) - 50;

//while true loop
while(1) {

    //login 
    char *server = "server";
    char *user = "user";
    char *password = "pass";
    char *database = "database";

    // Verbinding maken met de database.
    conn = mysql_init(NULL);
    if (!mysql_real_connect(conn, server,user, password, database, 0, NULL,0)){
        fprintf(stderr, "%s\n", mysql_error(conn));
    }

    //Query for putting currentTemp into my database
    if(mysql_query(conn, "INSERT INTO temperature VALUES(currentTemp)")!=0){
        mysql_error(conn);
    }    
}

1 个答案:

答案 0 :(得分:2)

您尚未在此处插入

if(mysql_query(conn,“INSERT INTO Temperatuur VALUES(currentTemp)”)!= 0)

您需要使用snprintf()并打印currentTemp并使用它:

char buf[1024];

snprintf(buf, sizeof buf, "INSERT INTO temperatuur VALUES(%d)", currentTemp);
if(mysql_query(conn, buf) != 0 )  {
   ....
}