약점이있는 문자열 조작으로 테이블의 레코드를 업데이트 할 수 있습니다.
이제 매개 변수로 업데이트하려고합니다. 그러나 이것은 생각하지 않습니다.PostgreSQL, libpq/C, 업데이트 매개 변수
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 배열에 맞지 않는 것을 두 배이다.
나는 문자열만으로도 같은 것을 시도하고 작동합니다.
숫자를 논리적으로 보이지 않는 문자열로 변환해야하는 경우.
올바르게 수행하는 방법은 무엇입니까?
나는 본다. 이 상황에서 libpqtypes는 매우 매력적입니다. 나는 컴파일하려고하지만 할 수 없다. 이 라이브러리의 Windows 바이너리를 다운로드 할 곳이 있습니까? –
@ user973238 아, Windows에 있습니다. 장난. 나는 아직 Windows에서'libpqtypes'를 사용할 필요가 없으므로 여러분 자신 만의 것이됩니다. 적절한 검색을 한 후에 아무것도 찾지 못하면 메일 링리스트에 질문하거나 새로운 SO 질문을 게시하는 것을 고려하십시오. –