MySQL 5.7 C API Developer Guide
MYSQL_FIELD * mysql_fetch_field(MYSQL_RES *result)
Returns the definition of one column of a result set as a
MYSQL_FIELD structure. Call this function
repeatedly to retrieve information about all columns in the
result set.
mysql_fetch_field() returns
NULL when no more fields are left.
mysql_fetch_field() is reset
to return information about the first field each time you
execute a new SELECT query. The
field returned by
mysql_fetch_field() is also
affected by calls to
mysql_field_seek().
If you've called
mysql_real_query() or
mysql_query() to perform a
SELECT on a table but have not
called mysql_store_result(),
MySQL returns the default blob length (8KB) if you call
mysql_fetch_field() to ask for
the length of a BLOB field.
(The 8KB size is chosen because MySQL does not know the
maximum length for the BLOB.
This should be made configurable sometime.) Once you've
retrieved the result set,
field->max_length contains the length of
the largest value for this column in the specific query.