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_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.