MYSQL_RES *mysql_list_fields(MYSQL *mysql, const char *table, const char *wild)mysql_list_fields() is deprecated and is subject to removal in a future version of MySQL. Instead, usemysql_real_query() ormysql_query() to execute aSHOW COLUMNS statement.
Returns an empty result set for which the metadata provides information about the columns in the given table that match the simple regular expression specified by thewild parameter.wild may contain the wildcard characters% or_, or may be aNULL pointer to match all fields. Callingmysql_list_fields() is similar to executing the querySHOW COLUMNS FROM.tbl_name [LIKEwild]
The information obtained is roughly equivalent to that produced by executing the statement shown here using themysql client, like this:
$> mysql test --column-type-info -e "SELECT * FROM t LIMIT 0"Field 1: `c1`Catalog: `def`Database: `test`Table: `t`Org_table: `t`Type: LONGCollation: binary (63)Length: 11Max_length: 0Decimals: 0Flags: NUM Field 2: `c2`Catalog: `def`Database: `test`Table: `t`Org_table: `t`Type: LONGCollation: binary (63)Length: 11Max_length: 0Decimals: 0Flags: NUM $> It is preferable to useSHOW COLUMNS FROM instead oftbl_namemysql_list_fields().
You must free the result set withmysql_free_result().
Commands were executed in an improper order.
The MySQL server has gone away.
The connection to the server was lost during the query.
An unknown error occurred.
int i;MYSQL_RES *tbl_cols = mysql_list_fields(mysql, "mytbl", "f%");unsigned int field_cnt = mysql_num_fields(tbl_cols);printf("Number of columns: %d\n", field_cnt);for (i=0; i < field_cnt; ++i){ /* col describes i-th column of the table */ MYSQL_FIELD *col = mysql_fetch_field_direct(tbl_cols, i); printf ("Column %d: %s\n", i, col->name);}mysql_free_result(tbl_cols);