gpt4 book ai didi

c - 将存储的 int 值传递给 C 中的 mysql 表

转载 作者:行者123 更新时间:2023-11-30 18:57:49 25 4
gpt4 key购买 nike

我用 C 语言编写了一段用于读取传感器的代码。从该传感器我得到一个 int 值。我将该 int 值存储在名为“val”的 int 变量中。

现在我想将存储在“val”中的值发送到mysql数据库中的表中。我的数据库中总是出现 0。我不知道为什么。

这是代码:

int main (int argc, char* argv[])
{ int val; // val is a variable of type integer

CPhidgetInterfaceKitHandle ifKit =0;
CPhidgetInterfaceKit_create(&ifKit);

CPhidget_open((CPhidgetHandle)ifKit,-1);

CPhidget_waitForAttachment((CPhidgetHandle)ifKit,1000);
//Waiting max 1000ms till phidgetkit is connected.

while(1)
{
CPhidgetInterfaceKit_getSensorValue(ifKit,0,&val);
//Reading sensor 0 and stores value in variable val.
// &val = pointer to the memory location of val

if(val > 65){
CPhidgetInterfaceKit_setOutputState(ifKit, 0, 1);
}
else{
CPhidgetInterfaceKit_setOutputState(ifKit, 0, 0);
}

MYSQL *conn;

char *server = "*****";
char *user = "*****";
char *password = "*****";
char *database = "*****";

// Make the connection to the Mysql-database.
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server,
user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}

//Add values to table IRSensor
if (mysql_query(conn, "INSERT INTO IRsensor VALUES('val')" ))
{exit (1);}

printf("Value %d \n", val);
// Shows decimal value of val in terminal

usleep(800000); // delay of 800 ms before the sensor starts reading the next value
}

CPhidget_close((CPhidgetHandle)ifKit);
CPhidget_delete((CPhidgetHandle)ifKit);
return 0;
}

最佳答案

我实际上很惊讶它的工作原理(并且不会抛出错误)。您需要实际将 val 插入到 INSERT 命令中,而不仅仅是使用字符串 'val'

但不要天真地这样做:使用参数化查询,如文档 here 所示。 .

关于c - 将存储的 int 值传递给 C 中的 mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19459024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com