MySQL :: MySQL 8.4 C API Developer Guide :: 5.4.18 mysql_fetch_field() (original) (raw)
The world's most popular open source database
5.4.18 mysql_fetch_field()
MYSQL_FIELD *
mysql_fetch_field(MYSQL_RES *result)
Description
Returns the definition of one column of a result set as aMYSQL_FIELD
structure. Call this function repeatedly to retrieve information about all columns in the result set.mysql_fetch_field() returnsNULL
when no more fields are left.
For metadata-optional connections, this function returnsNULL
when theresultset_metadata system variable is set to NONE
. To check whether a result set has metadata, use themysql_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 bymysql_fetch_field() is also affected by calls tomysql_field_seek().
If you've calledmysql_real_query() ormysql_query() to perform aSELECT on a table but have not called mysql_store_result(), MySQL returns the default blob length (8KB) if you callmysql_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.
Return Values
The MYSQL_FIELD
structure for the current column. NULL
if no columns are left or the result set has no metadata.
Example
MYSQL_FIELD *field;
while((field = mysql_fetch_field(result)))
{
printf("field name %s\n", field->name);
}