文档首页
MySQL 8.4 C API 开发人员指南
下载此手册
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


5.4.47 mysql_list_fields()

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

描述

注意

mysql_list_fields() 已被弃用,可能会在 MySQL 的未来版本中移除。请使用 mysql_real_query()mysql_query() 执行 SHOW COLUMNS 语句。

返回一个空的結果集,其元数据提供了有关与 wild 参数指定的简单正则表达式匹配的给定表中的列的信息。 wild 可能包含通配符 %_,也可能是一个 NULL 指针以匹配所有字段。调用 mysql_list_fields() 等同于执行查询 SHOW COLUMNS FROM tbl_name [LIKE wild]

获得的信息大致相当于使用 mysql 客户端执行此处显示的语句所产生的信息,例如

$> 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 

$>

最好使用 SHOW COLUMNS FROM tbl_name 而不是 mysql_list_fields().

您必须使用 mysql_free_result() 释放结果集。

返回值

成功时返回 MYSQL_RES 结果集。如果发生错误,则返回 NULL

错误

示例

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