文档主页
MySQL 9.0 C API 开发者指南
下载本手册
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


5.4.18 mysql_fetch_field()

MYSQL_FIELD *
mysql_fetch_field(MYSQL_RES *result)

描述

MYSQL_FIELD 结构的形式返回结果集中一列的定义。重复调用此函数以检索结果集中所有列的信息。 mysql_fetch_field() 在没有更多字段时返回 NULL

对于元数据可选连接,当 resultset_metadata 系统变量设置为 NONE 时,此函数返回 NULL。要检查结果集是否具有元数据,请使用 mysql_result_metadata() 函数。有关管理结果集元数据传输的详细信息,请参阅第 3.6.7 节“可选结果集元数据”

每次执行新的 SELECT 查询时,mysql_fetch_field() 都会重置为返回有关第一个字段的信息。调用 mysql_field_seek() 也会影响 mysql_fetch_field() 返回的字段。

如果您调用了 mysql_real_query()mysql_query() 对表执行 SELECT 操作,但没有调用 mysql_store_result(),则在调用 mysql_fetch_field() 请求 BLOB 字段的长度时,MySQL 会返回默认的 blob 长度 (8KB)。(选择 8KB 大小是因为 MySQL 不知道 BLOB 的最大长度。这应该在将来某个时候可以配置。)检索到结果集后,field->max_length 将包含特定查询中此列最大值的长度。

返回值

当前列的 MYSQL_FIELD 结构。如果不再有列或结果集没有元数据,则为 NULL

错误

无。

示例

MYSQL_FIELD *field;

while((field = mysql_fetch_field(result)))
{
    printf("field name %s\n", field->name);
}