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,
            use mysql_real_query() or
            mysql_query() to execute a
            SHOW 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 the
          wild parameter. wild may
          contain the wildcard characters % or
          _, or may be a NULL
          pointer to match all fields. Calling
          mysql_list_fields() is similar
          to executing the query SHOW COLUMNS FROM
          .
        tbl_name [LIKE
          wild]
The information obtained is roughly equivalent to that produced by executing the statement shown here using the mysql 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:       LONG
Collation:  binary (63)
Length:     11
Max_length: 0
Decimals:   0
Flags:      NUM 
Field   2:  `c2`
Catalog:    `def`
Database:   `test`
Table:      `t`
Org_table:  `t`
Type:       LONG
Collation:  binary (63)
Length:     11
Max_length: 0
Decimals:   0
Flags:      NUM 
$>
          It is preferable to use SHOW COLUMNS FROM
           instead of
          tbl_namemysql_list_fields().
        
          You must free the result set with
          mysql_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);