Documentation Home

5.4.84 mysql_store_result()

MYSQL_RES *
mysql_store_result(MYSQL *mysql)

描述

笔记

mysql_store_result()是一个同步函数。它的异步对应物是 mysql_store_result_nonblocking(),供需要与服务器进行异步通信的应用程序使用。请参阅 第 7 章,C API 异步接口

调用 mysql_real_query()or 之后mysql_query(),您必须 为每个成功生成结果集的语句调用 or (mysql_store_result(), , , , 等等 )。您还必须在完成结果集后 调用 。mysql_use_result()SELECTSHOWDESCRIBEEXPLAINCHECK TABLEmysql_free_result()

您不需要调用 mysql_store_result()or 其他语句,但如果您在所有情况下mysql_use_result()都调用,它不会造成任何伤害或导致任何显着的性能下降 。mysql_store_result()您可以通过检查是否 mysql_store_result()返回非零值来检测该语句是否具有结果集(稍后会详细介绍)。

如果您启用多语句支持,您应该从调用 mysql_real_query()mysql_query()通过使用循环来检索结果,该循环调用mysql_next_result() 以确定是否有更多结果。有关示例,请参阅第 3.6.3 节,“多语句执行支持”

要确定语句是否返回结果集,请调用 mysql_field_count()。参见 第 5.4.23 节,“mysql_field_count()”

mysql_store_result()向客户端读取查询的整个结果,分配一个 MYSQL_RES结构,并将结果放入该结构中。

mysql_store_result()NULL如果语句没有返回结果集(例如,如果它是一条 语句 INSERT),或者发生错误并且读取结果集失败,则返回。

如果没有返回行,则返回空结果集。(空结果集不同于作为返回值的空指针。)

在您调用 mysql_store_result()并返回一个非空指针的结果后,您可以调用 mysql_num_rows()以查明结果集中有多少行。

您可以调用mysql_fetch_row() 以从结果集中获取行,或者 调用mysql_row_seek()mysql_row_tell()获取或设置结果集中的当前行位置。

参见第 3.6.9 节,“mysql_query() 成功后返回 NULL mysql_store_result()”

返回值

指向带有结果的MYSQL_RES结果结构的指针。NULL如果该语句未返回结果集或发生错误。要确定是否发生错误,请检查是否 mysql_error()返回非空字符串、mysql_errno() 返回非零值或 mysql_field_count()返回零值。

错误

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