Documentation Home

5.4.18 mysql_fetch_field()

MYSQL_FIELD *
mysql_fetch_field(MYSQL_RES *result)

描述

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

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

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

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

返回值

当前列的MYSQL_FIELD结构。NULL如果没有留下任何列或结果集没有元数据。

错误

没有任何。

例子

MYSQL_FIELD *field;

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