MySQL :: MySQL 8.4 C API Developer Guide :: 5.4.47 mysql_list_fields() (original) (raw)
The world's most popular open source database
5.4.47 mysql_list_fields()
MYSQL_RES *
mysql_list_fields(MYSQL *mysql,
const char *table,
const char *wild)
Description
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 a NULL
pointer to match all fields. Callingmysql_list_fields() is similar to executing the query SHOW COLUMNS FROM_`tblname`_ [LIKE_`wild`_]
.
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: 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_`tblname`_
instead ofmysql_list_fields().
You must free the result set withmysql_free_result().
Return Values
A MYSQL_RES
result set for success.NULL
if an error occurred.
Errors
- CR_COMMANDS_OUT_OF_SYNC
Commands were executed in an improper order. - CR_SERVER_GONE_ERROR
The MySQL server has gone away. - CR_SERVER_LOST
The connection to the server was lost during the query. - CR_UNKNOWN_ERROR
An unknown error occurred.
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);