10bet网址
MySQL 8.0 C API开发人员指南
下载本手册

5.4.81 mysql_store_result()

mysql_res * mysql_store_result(mysql * mysql)

描述

笔记

mysql_store_result()是一个同步功能。它的异步对应物是mysql_store_result_nonblocking(),用于使用与服务器异步通信的应用程序使用。看第七章,C API异步接口

调用后mysql_query()或者mysql_real_query(),你必须打电话mysql_store_result()或者mysql_use_result()对于成功生成结果集的每个语句(选择表演描述解释检查表等等)。你还必须打电话mysql_free_result()使用结果集完成后。

你不需要打电话mysql_store_result()或者mysql_use_result()对于其他陈述,但如果您呼唤,它不会造成任何伤害或导致任何显着的性能下降mysql_store_result()在所有情况下。您可以通过检查是否具有结果来检测语句是否具有结果集mysql_store_result()返回非零值(稍后有关此内容)。

如果启用多语句支持,则应检索呼叫的结果mysql_query()或者mysql_real_query()通过使用呼叫的循环mysql_next_result()确定是否有更多结果。例如,看到第3.6.2节“多声明执行支持”

确定语句是否返回结果集,调用mysql_field_count()。看第5.4.23节“MySQL_FIELD_COUNT()”

mysql_store_result()读取对客户端查询的整个结果,分配amysql_res.结构,并将结果放入这种结构中。

mysql_store_result()回报空值如果语句没有返回结果集(例如,如果是语句)或发生错误和读取结果集失败。

如果没有返回的行,则返回一个空结果集。(空结果集与空指针与返回值的不同之处不同。)

你打电话后mysql_store_result()并返回一个不是空指针的结果,你可以打电话mysql_num_rows()找出结果集中的行数。

你可以打电话mysql_fetch_row()从结果集获取行,或mysql_row_seek()mysql_row_tell()要在结果集中获取或设置当前行位置。

第3.6.8节“null mysql_store_result()返回mysql_query()成功后”

返回值

指向一个指针mysql_res.结果结构具有结果。空值如果语句没有返回结果集或发生错误。要确定是否发生错误,请检查是否mysql_error()返回一个非空字符串,mysql_errno()返回非零,或mysql_field_count()返回零。

错误

mysql_store_result()重置mysql_error()mysql_errno()如果成功。