我可以通过有一些弱点的字符串操作来更新表中的记录。
所以,现在我尝试使用参数进行更新,但这并没有像我想象的那样进行。
sprintf(sql, "%s%s%s%s%s%d%s",
"UPDATE ", mytable, " SET ",
"my_id=$0, mystr1=$1, mystr2=$2, myint=$3, mydouble=$4",
"WHERE my_id='", local_my_id, "'");
const char *values[5] =
{local_my_id, local_mystr1, local_mystr2, local_myint, local_mydouble};
result = PQexecParams(conn, sql, 5, NULL, values, NULL, NULL, 0);
值 1 和 4 是整数,值 5 是不适合 const char 数组的两倍。
我只用字符串尝试相同的方法,它可以工作。
如果我必须将数字转换为看起来不合逻辑的字符串。
如何正确执行此操作?