Documentation Home
MySQL 9.4 C API Developer Guide
Download this Manual
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


5.4.22 mysql_fetch_row()

MYSQL_ROWmysql_fetch_row(MYSQL_RES *result)

Description

Note

mysql_fetch_row() is a synchronous function. Its asynchronous counterpart ismysql_fetch_row_nonblocking(), for use by applications that require asynchronous communication with the server. SeeChapter 7,C API Asynchronous Interface.

mysql_fetch_row() retrieves the next row of a result set:

The number of values in the row is given bymysql_num_fields(result). Ifrow holds the return value from a call tomysql_fetch_row(), pointers to the values are accessed asrow[0] torow[mysql_num_fields(result)-1].NULL values in the row are indicated byNULL pointers.

The lengths of the field values in the row may be obtained by callingmysql_fetch_lengths(). Empty fields and fields containingNULL both have length 0; you can distinguish these by checking the pointer for the field value. If the pointer isNULL, the field isNULL; otherwise, the field is empty.

Return Values

AMYSQL_ROW structure for the next row, orNULL. The meaning of aNULL return depends on which function was called precedingmysql_fetch_row():

Errors

Errors are not reset between calls tomysql_fetch_row()

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