공식문서 링크

 

1. mysql_fetch_row( )

더보기

함수 원형

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);

 

 

동작

  • SELECT 실행 결과 집합(MYSQL_RES *, 2차원 테이블 형태의 데이터 집합)에서 
  • 한 행(row)에 해당하는 정보를 읽고,
  • 한 행(row)에 포함된, 개별 필드 값을 문자열(char) 형태로 반환
  • 한 행(row)씩 반복해서 읽고, 더 이상 읽을 행이 없으면 NULL 반환

 

 

자료형/반환값

  • 매개변수 (MYSQL_RES * result) :
    • SELECT 실행 결과 집합(MYSQL_RES *, 2차원 테이블 형태의 데이터 집합)을 참조하는 포인터
    • mysql_store_result() 또는 mysql_use_result()로 얻음
  • 반환값 (MYSQL_ROW) :
    • 2차원 테이블 형태에서, 한 행(row)에 해당하는 정보
    • 한 행(row)의 각 컬럼 값들이 문자열로 저장된 배열(예: row[0], row[1], ...)
    • MYSQL_ROW는 typedef char **MYSQL_ROW; 로 정의
    • 읽을 행(row)이 더 이상 없으면 NULL 반환

 

2. MYSQL_ROW

더보기
  •  

 1. MYSQL_RES *res 

 

SELECT 실행 결과 집합(MYSQL_RES *, 2차원 테이블 형태의 데이터 집합)을

MYSQL_RES로 참조하면, 아래와 같은 형태의 테이블 데이터를 가리키고 있는 포인터

 

code  name email
1 Alice alice@a.com
2 Bob bob@b.com

 

 

2. 첫 번째 행을 읽으면:

row = mysql_fetch_row(res) // 로 첫 번째 행을 읽으면:
  • 2번째 row : {"2", "Bob", "bob@b.com"}
    • row[0] → "2"
    • row[1] → "Bob"
    • row[2] → "bob@B.com"
  • 3번째 row: NULL 반환

이 데이터들이 모두 char*(문자열) 형태입니다.

 

3. mysql_store_result  예시

더보기

mysql_fetch_row( ),  한 행씩 출력

MYSQL_ROW row;
while ((row = mysql_fetch_row(res)) != NULL) {
    printf("첫 번째 컬럼: %s\n", row[0]);
}