Documentation Home
MySQL 8.0 C API Developer Guide
Download this Manual
PDF (US Ltr) - 1.3Mb
PDF (A4) - 1.3Mb


5.4.47 mysql_list_fields()

MYSQL_RES *mysql_list_fields(MYSQL *mysql,                  const char *table,                  const char *wild)

Description

Note

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 FROMtbl_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 FROMtbl_name instead ofmysql_list_fields().

You must free the result set withmysql_free_result().

Return Values

AMYSQL_RES result set for success.NULL if an error occurred.

Errors

Example

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