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);
}