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");
}