文档首页
MySQL 9.0 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);