MYSQL_ROW
mysql_fetch_row(MYSQL_RES *result)
            mysql_fetch_row() is a
            synchronous function. Its asynchronous counterpart is
            mysql_fetch_row_nonblocking(),
            for use by applications that require asynchronous
            communication with the server. See
            Chapter 7, C API Asynchronous Interface.
          
          mysql_fetch_row() retrieves
          the next row of a result set:
        
- When used after - mysql_store_result()or- mysql_store_result_nonblocking(),- mysql_fetch_row()returns- NULLif there are no more rows to retrieve.
- When used after - mysql_use_result(),- mysql_fetch_row()returns- NULLif there are no more rows to retrieve or an error occurred.
          The number of values in the row is given by
          mysql_num_fields(result). If
          row holds the return value from a call to
          mysql_fetch_row(), pointers to
          the values are accessed as row[0] to
          row[mysql_num_fields(result)-1].
          NULL values in the row are indicated by
          NULL pointers.
        
          The lengths of the field values in the row may be obtained by
          calling mysql_fetch_lengths().
          Empty fields and fields containing NULL
          both have length 0; you can distinguish these by checking the
          pointer for the field value. If the pointer is
          NULL, the field is NULL;
          otherwise, the field is empty.
        
          A MYSQL_ROW structure for the next row, or
          NULL. The meaning of a
          NULL return depends on which function was
          called preceding
          mysql_fetch_row():
        
- When used after - mysql_store_result()or- mysql_store_result_nonblocking(),- mysql_fetch_row()returns- NULLif there are no more rows to retrieve.
- When used after - mysql_use_result(),- mysql_fetch_row()returns- NULLif there are no more rows to retrieve or an error occurred. To determine whether an error occurred, check whether- mysql_error()returns a nonempty string or- mysql_errno()returns nonzero.
          Errors are not reset between calls to
          mysql_fetch_row()
        
- 
The connection to the server was lost during the query. 
- 
An unknown error occurred. 
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");
}