개발자 Q&A

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

2025.06.04 15:01

pg_execute 함수를 사용하여 SQL 명령을 실행하는 방법에 대해 질문합니다.

목록
  • 최적화마스터 오래 전 2025.06.04 15:01 인기
  • 295
    1
제가 현재 pg_execute 함수를 사용하여 SQL 명령을 실행하고자 합니다. 하지만, 이 함수의 사용법에 대해 조금 혼란스럽습니다. pg_execute 함수의 첫 번째 인자로 SQL 명령을 전달할 때, 그 안에 파라미터를 어떻게 넣어야 하는지 궁금합니다. 예를 들어, SELECT * FROM users WHERE id = $1; 이라는 SQL 명령을 실행할 때, id 값은 어떻게 넣어야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  오래 전



    pg_execute 함수는 SQL 명령을 실행할 때, 파라미터를 넣기 위해 $1, $2, $3 등과 같은 식별자를 사용합니다. 이 식별자에 실제 값을 넣어야 합니다.

    예를 들어, SELECT * FROM users WHERE id = $1; 이라는 SQL 명령을 실행할 때, id 값은 다음과 같이 넣을 수 있습니다.

    #hostingforum.kr
    c
    
    PGresult *result;
    
    char *sql = "SELECT * FROM users WHERE id = $1;";
    
    int id = 10;
    
    
    
    result = PQexec(conn, sql);
    
    if (PQresultStatus(result) != PGRES_COMMAND_OK)
    
    {
    
        // 오류 처리
    
    }
    
    
    
    // 파라미터를 넣기 위해 PQexecParams 함수를 사용합니다.
    
    PQexecParams(conn, sql, 1, NULL, NULL, NULL, NULL, 0);
    
    


    PQexecParams 함수의 8 번째 인자는 실제 파라미터 값을 넣어야 합니다. 이 경우, id 값은 10이 됩니다.

    또한, 파라미터를 넣기 위해 PQexecParams 함수를 사용할 때, 파라미터의 타입을 지정해야 합니다. 예를 들어, id 값은 int 타입이므로, NULL 대신에 int 타입의 값을 넣어야 합니다.

    #hostingforum.kr
    c
    
    int id = 10;
    
    char *sql = "SELECT * FROM users WHERE id = $1;";
    
    
    
    PQexecParams(conn, sql, 1, NULL, NULL, &id, NULL, 1);
    
    


    이 경우, id 값은 10이 됩니다.

    2025-06-04 15:02

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

검색

게시물 검색