> 제가 아직 디비 초보라서요. SQL문법도 잘 모릅니다.
> 테이블을 하나 정의했는데요. 구조는
> (
> name text primary key,
> data int4 ,
> ...
> ...
> score int4
> )
> 이렇습니다. 여기서 제가 만든 CGI프로그램에 접속을하면
> 그사람의 아이디가 name에 저장됩니다.
> 그런데 처음 접속을 하면 물론 아이디가 없으니까
> insert를 해야 하겠죠?
> 그리고 처음이 아니면 이름을 찾아서 data를 update
> 하도록 하고 있습니다.
>
> 그런데 libpq에서 이를 이용하려고 제가 썼던 방법은
> select를 한 뒤에 리턴 값이 없으면 처음 접속한 것
> 이므로 insert를 하고 아니면 update를 하도록
> 하였습니다. 즉,
>
> res=PQexec(conn, "SELECT xxx FROM xxx WHERE name = xxx");
> if (PQgetvalue(res, 0, 0) == '\0') ... ...
>
> 뭐 이런 식인데요. 상당히 않좋은 방법인것 같습니다.
> 특히 PQgetvalue는 standard output으로 메세지를
> 출력하는 이상한 특징이 있어서요.
>
> name필드에서 데이타가 존재하는지 안하는지 아는
> 다른 좋은 방법 있으면 알려주세요
> 그럼~
>
이럴 경우에는 당연히 pg_numrows() 라는 함수를
사용합니다. Query의 결과 돌아온 tuple의수가 몇개인지
가르쳐 주지요.
|