PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb
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_namemysql_list_fields().
您必须使用 mysql_free_result() 释放结果集。
-
命令执行顺序不正确。
-
MySQL 服务器已断开连接。
-
查询过程中与服务器的连接断开。
-
发生未知错误。
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);