gpt4 book ai didi

c - 使用c语言在postgres数据库中插入modbus值

转载 作者:行者123 更新时间:2023-11-30 14:35:38 25 4
gpt4 key购买 nike

如何使用c语言在postgresql数据库中插入变量?我尝试使用“:”插入变量,但它不起作用

float g=1.23;
int main(int argc, char *argv[])
{
PGconn *conn = PQconnectdb("user=postgres password=postgres dbname=postgres");
if (PQstatus(conn) == CONNECTION_BAD) {

fprintf(stderr, "Connection to database failed: %s\n",
PQerrorMessage(conn));

PQfinish(conn);
exit(1);
}
PGresult *res = PQexec(conn, "DROP TABLE IF EXISTS modbus_value");
if (PQresultStatus(res) != PGRES_COMMAND_OK) {
do_exit(conn, res);
}
PQclear(res);

res = PQexec(conn, "insert into modbus_value(id,temp) values(1,:g)");

if (PQresultStatus(res) != PGRES_COMMAND_OK) {
do_exit(conn, res);
}
PQclear(res);
PQexit(conn);
return 0;
}

最佳答案

不要使用PQexec,而是使用 PQexecParams ,并使用 $1 而不是 :g

例如:

 char value[10];
snprintf(value, 10, "%f", g);

res = PQexecParams(conn,
"insert into modbus_value(id,temp) values(1,$1)",
1
NULL,
&value,
NULL,
NULL,
0);

关于c - 使用c语言在postgres数据库中插入modbus值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58449960/

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