::icastone 님께서 쓰시길::
>
> ::하태균 님께서 쓰시길::
>
> > 안녕하셔요. 항상 도움을 주셔서 감사합니다.
> >
> > Warning: Unable to jump to row 0 on PostgresSQL result index 3 in /var/www/home/06/1.htm on li
> ne
> > 23
> >
> > 이런 에러가 나거든요.
> > 이것을 어떻게 해석해야 하는지 감이 서지를 않는군요.
> > 도와주시기 바랍니다.
> >
> > 좋은 하루 되세요.
>
>
> 그런 종료의 에러는 결과 값이 없는데 그 값을 알아오는 경우에 나오는 에러입니다.
>
> 예를 들면..(php)
>
> $SQL = "SELECT * FROM member WHERE id='test' ";
> $result = pg_Exec($conn, $SQL);
>
> 뭐 이런 식으로 $result 값을 얻었다고 합시다.
>
> 그런대 만약 id를 test라고 가진 사용자가 없으면 $result에는 아무 것도 없겠죠..
>
> 그럴경우
>
> $into = pg_result($result, 0, "id");
>
> 이런식으로 하면 그런 에러가 납니다. pg_Fetch_Array() 등의 함수도 마찬가지죠..
>
> 그러니 pg_NumRows() 함수를 활용해서 $result의 값이 몇게인지 확인해 보세요.
>
> 아마 0 이 나올 것입니다.
>
> 아니면 database에 직접 접속해서 에러나는 SQL 문을 써보세요..
>
> 결과가 하나도 안나오는 SQL 일 겁니다.
>
> 그럼 좋은 하루 되세요.. 그냥 제가 아는 대로 몇자 적어 봤습니다.
>
> 제가 잘못 알고 있는것이 있으면 답변 달아주세요.. ㅡ.ㅡ;;
넵 맞는 얘기인것 같군요.
제가 알고 있기론 오라클에서는 /1403 error code를 이용해서
no low일 경우 다시말해 fetch성 이나 아니면 단순히 1개의 data를 select했을때
도 error code를 비교하여 처리했던 적이 있습니다.
그런데 pg(postgres)에서는 그런 error code를 지원하지 않는것 같군요.
혹시 지원해 주고 있다면 저에게도 알려주세요.
그래서 pg쪽에서는 이런 방법으로 그것을 피해갔습니다.
$query = " SELECT count(sev_seq) AS cnt, sum(sev_sch) AS sum ". " FROM sev_tbl ".
" WHERE sev_mem = '$user_info' ".
" AND sev_sta = 40 ".
" AND sev_pym >= '$from_date' ".
" AND sev_pym <= '$to_date' ";
$result = pg_exec($conn, $query);
$tuples = (!$result) ? 0 : pg_NumRows($result);
if ($tuples) $row = pg_fetch_array($result,0); //==> 여기를 잘 보세요...
이런식으로 했을때 select시 결과값이 한개도 없을겨우 다시말해 처음 질문에
적어주신 error코드를 피할수 있어요. 많은 도움이 되었는지요???
|