MySQL 8.4 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.
For metadata-optional connections, this function returns
NULL when the
resultset_metadata system
variable is set to NONE. To check whether a
result set has metadata, use the
mysql_result_metadata()
function. For details about managing result set metadata
transfer, see Section 3.6.7, “Optional Result Set Metadata”.
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.
The MYSQL_FIELD structure for the current
column. NULL if no columns are left or the
result set has no metadata.