3.6.6可选结果集元数据

当客户端执行生成结果集的语句时,MySQL会使结果集包含的数据包含,默认情况下,结果设置了提供有关结果集数据的信息的结果集元数据。元数据包含在mysql_field.结构(参见第5.2节“C API基本数据结构”。),由此返回mysql_fetch_field()mysql_fetch_field_direct(), 和mysql_fetch_fields()职能。

客户端可以在每个连接的基础上指示结果集元数据是可选的,并且客户端将向服务器指示是否返回它。客户端抑制客户端的元数据传输可以提高性能,特别是对于执行许多返回几行的查询的会话。

客户端有两种方法可以指示结果设置元数据是可选的连接。它们是等同的,所以一个足以满足:

对于元数据 - 可选连接,客户端设置resultset_metadata.系统变量来控制服务器是否返回结果集元数据。允许的值是满的(返回所有元数据)和没有任何(返回NO METADATA)。默认为满的因此,即使对于元数据可选连接,默认情况下,服务器返回元数据。

对于元数据 - 可选连接,mysql_fetch_field()mysql_fetch_field_direct(), 和mysql_fetch_fields()职能返回空值什么时候resultset_metadata.设定为没有任何

对于未元数据可选的连接,设置resultset_metadata.没有任何产生错误。

要检查结果集是否具有元数据,客户端调用mysql_result_metadata()功能。此功能返回resultset_metadata_full或者resultset_metadata_none.表示结果集分别具有完整的元数据或没有元数据。

mysql_result_metadata()如果客户端不知道结果集是否具有元数据,则是有用的。例如,如果客户端执行存储的存储过程,则返回多个结果集并且可能会更改resultset_metadata.系统变量,客户端可以调用mysql_result_metadata()对于每个结果集,以确定它是否具有元数据。