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