mysql_fetch_row(res)
공식문서 링크
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 | |
1 | Alice | alice@a.com |
2 | Bob | bob@b.com |
2. 첫 번째 행을 읽으면:
row = mysql_fetch_row(res) // 로 첫 번째 행을 읽으면:
- 1번째 row : {"1", "Alice", "alice@a.com"}
- row[0] → "1"
- row[1] → "Alice"
- row[2] → "alice@a.com"
- 2번째 row : {"2", "Bob", "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]);
}