23.8.7.21 mysql_fetch_row()
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
설명
결과 세트의 다음 행을 가져옵니다. mysql_store_result()
의 후에 사용하면 mysql_fetch_row()
는 더 이상 취득하는 행이없는 경우 NULL
을 반환합니다. mysql_use_result()
의 후에 사용하면 mysql_fetch_row()
는 더 이상 검색 할 행이 없거나 오류가 발생한 경우 NULL
을 반환합니다.
행 값의 개수는 mysql_num_fields(result)
에 의해 지정됩니다. row
가 mysql_fetch_row()
에 대한 호출에서 반환 값을 보유하고있는 경우, 그 값에 대한 포인터는 row[0]
에서 row[mysql_num_fields(result)-1]
까지로 액세스됩니다. 행에 NULL
값은 NULL
포인터로 표시됩니다.
행의 필드 값의 길이는 mysql_fetch_lengths()
를 호출함으로써 얻을 수 있습니다. 빈 필드와 NULL
을 포함하는 필드는 모두 길이가 0입니다. 이러한 구분은 필드 값의 포인터를 확인합니다. 포인터가 NULL
인 경우, 필드는 NULL
입니다. 그렇지 않은 경우 필드는 비어 있습니다.
반환 값
다음 줄의 MYSQL_ROW
구조. 더 이상 검색 할 행이 없거나 오류가 발생한 경우 NULL
.
오류
mysql_fetch_row()
의 호출과 호출 사이에 오류가 초기화되지 않습니다.
CR_SERVER_LOST
서버에 대한 연결이 쿼리 중에 손실되었습니다.
CR_UNKNOWN_ERROR
알 수없는 오류가 발생했습니다.
Example
MYSQL_ROW row; unsigned int num_fields; unsigned int i; num_fields = mysql_num_fields(result); while ((row = mysql_fetch_row(result))) { unsigned long *lengths; lengths = mysql_fetch_lengths(result); for(i = 0; i < num_fields; i++) { printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL"); } printf("\n"); }