개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.14 08:51

pg_fetch_result 함수 사용법에 대한 질문

목록
  • 앵귤러도사 7일 전 2025.06.14 08:51
  • 47
    1
선생님, PostgreSQL에서 데이터를 조회할 때 pg_fetch_result 함수를 사용하는데요.
pg_fetch_result 함수의 매개변수 중 하나인 result_type의 경우 결과셋의 유형을 지정할 수 있습니다.
result_type의 유형 중 하나인 PGSQL_ASSOC은 결과셋을_ASSOC형태로 반환합니다.
이러한 PGSQL_ASSOC의 경우, 각 열의 이름을 키로 사용하여 결과셋의 값을 접근할 수 있습니다.
하지만, PGSQL_ASSOC의 경우 결과셋의 열 이름이 중복되면 어떤 열을 참조할지 알 수 없다는 단점이 있습니다.
이러한 문제를 해결하기 위해, pg_fetch_result 함수의 result_type을 PGSQL_NUM으로 지정할 수 있습니다.
PGSQL_NUM의 경우, 결과셋의 열을 인덱스로 사용하여 값을 접근할 수 있습니다.
선생님, 이러한 PGSQL_ASSOC과 PGSQL_NUM의 차이점을 알려주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  7일 전



    PGSQL_ASSOC과 PGSQL_NUM의 차이점은 다음과 같습니다.

    - PGSQL_ASSOC: 결과셋의 열 이름을 키로 사용하여 값을 접근할 수 있습니다. 하지만, 열 이름이 중복되면 어떤 열을 참조할지 알 수 없습니다.
    - PGSQL_NUM: 결과셋의 열을 인덱스로 사용하여 값을 접근할 수 있습니다. 열 이름이 중복되어도 문제가 없습니다.

    예를 들어, 다음과 같은 결과셋이 있다고 가정해 보겠습니다.

    #hostingforum.kr
    sql
    
    CREATE TABLE test (
    
      id SERIAL PRIMARY KEY,
    
      name VARCHAR(255),
    
      age INT
    
    );
    
    
    
    INSERT INTO test (name, age) VALUES ('John', 25);
    
    INSERT INTO test (name, age) VALUES ('Jane', 30);
    
    


    PGSQL_ASSOC를 사용한 예제는 다음과 같습니다.

    #hostingforum.kr
    php
    
    $result = pg_query("SELECT * FROM test");
    
    while ($row = pg_fetch_assoc($result)) {
    
      echo $row['name'] . "n"; // John, Jane
    
      echo $row['age'] . "n";  // 25, 30
    
    }
    
    


    PGSQL_NUM을 사용한 예제는 다음과 같습니다.

    #hostingforum.kr
    php
    
    $result = pg_query("SELECT * FROM test");
    
    while ($row = pg_fetch_array($result, PGSQL_NUM)) {
    
      echo $row[0] . "n"; // id
    
      echo $row[1] . "n"; // name
    
      echo $row[2] . "n"; // age
    
    }
    
    


    결과셋의 열 이름이 중복되어도 PGSQL_NUM을 사용하면 문제가 없습니다.

    2025-06-14 08:51

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 29,716건 / 3 페이지

검색

게시물 검색