공식문서 링크

 

1. mysql_store_result( )

더보기

함수 원형

MYSQL_RES *mysql_store_result(MYSQL *mysql);

 

 

동작

  • mysql_query로 실행한
  • SELECT 실행 결과 집합(MYSQL_RES *, 2차원 테이블 형태의 데이터 집합) 받아옵니다.
  • 결과 집합을 메모리로 복사하여, MYSQL_RES *로 참조합니다.
  • 나중에 반복문으로 읽을 수 있게 만듭니다.
  • 반드시 사용 후 mysql_free_result()로 해제해야 메모리 누수가 없습니다.

 


자료형/반환값

  • MYSQL * mysql :
    • 데이터베이스 연결을 나타내는 구조체 포인터
  • 반환값 (MYSQL_RES *) :
    • 성공 시 : SELECT 실행 결과 집합 을 가리키는 포인터 (MYSQL_RES *)
    • 실패 시 : NULL (에러 메시지는 mysql_error(mysql)로 확인)

 

2.MYSQL_RES

더보기

 1. 예시

// 2. 결과 집합 받기
MYSQL_RES *res = mysql_store_result(conn);

 

 

2. MYSQL_RES 예시


code  name email
1 Alice alice@a.com
2 Bob bob@b.com
  • 이렇게 2행 3열 결과를 MYSQL_RES가 담고 있으면

 

3. 구조

  • MYSQL_RES는 SELECT 실행 결과 집합 (테이블, 2차원 배열 형태, 여러 행/열)을 메모리에 저장하고 관리하는 용도입니다.
    →  각 행(row)을 [문자열(char *)]의 배열로 저장합니다.
  • 각 행(row)은
    → 값을 [문자열(char *)]로 저장한 배열입니다.
  • 이후, mysql_fetch_row(), mysql_num_fields(), mysql_num_rows() 등 함수로 정보에 접근

 

3. mysql_store_result  예시

더보기

1. mysql_query( ), 쿼리 실행

// 1. 쿼리 실행
const char *query = "SELECT * FROM Members;";
if (mysql_query(conn, query)) {
    // 에러 발생
    fprintf(stderr, "쿼리 실행 실패: %s\n", mysql_error(conn));
    // 추가 에러 처리
} else {
    // 쿼리 성공, 결과 집합을 받아야 한다면 다음 단계로...
}
  • 실패 시, mysql_error(conn)으로 에러 메시지 확인

 

 

2. mysql_store_result( ),  결과 집합 받기

MYSQL_RES *res = mysql_store_result(conn);