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


5.4.47 mysql_list_fields()

Press CTRL+C to copy
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, 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:

Press CTRL+C to copy
$> 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 tbl_name instead of mysql_list_fields().

You must free the result set with mysql_free_result().

Return Values

A MYSQL_RES result set for success. NULL if an error occurred.

Errors

Example

Press CTRL+C to copy
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);