10bet网址
MySQL 8.0 C API开发指南
本手册下载
PDF (Ltr)- 1.3 mb
PDF (A4)- 1.3 mb


5.4.48 mysql_next_result ()

int mysql_next_result (MYSQL * MYSQL)

描述

请注意

mysql_next_result ()是一个同步函数。它的异步对应是mysql_next_result_nonblocking (),供需要与服务器进行异步通信的应用程序使用。看到第七章,C API异步接口

mysql_next_result ()在执行指定为单个语句字符串的多个语句时使用,或者在使用调用语句执行存储过程,可以返回多个结果集。

mysql_next_result ()读取下一个语句结果并返回一个状态,以指示是否存在更多结果。如果mysql_next_result ()返回一个错误,没有更多的结果。

在每次呼叫之前mysql_next_result (),你必须打电话mysql_free_result ()如果当前语句是返回结果集(而不仅仅是结果状态)的语句。

后调用mysql_next_result ()连接的状态就像您已经调用了一样mysql_real_query ()mysql_query ()下一个语句。这意味着您可以调用mysql_store_result ()mysql_warning_count ()mysql_affected_rows ()等等。

如果您的程序使用调用语句来执行存储过程CLIENT_MULTI_RESULTS标志必须启用。这是因为调用除了过程中执行的语句可能返回的任何结果集之外,还返回一个结果来指示调用状态。因为调用可以返回多个结果,处理他们使用循环调用mysql_next_result ()以确定是否有更多的结果。

CLIENT_MULTI_RESULTS呼叫时是否可以启用mysql_real_connect (),可以通过传递CLIENT_MULTI_RESULTS标记自身,或通过传递隐式地标记CLIENT_MULTI_STATEMENTS(也可以CLIENT_MULTI_RESULTS).CLIENT_MULTI_RESULTS默认启用。

也可以通过调用来测试是否有更多的结果mysql_more_results ().但是,这个函数不会改变连接状态,所以如果它返回true,您仍然必须调用mysql_next_result ()进入下一个结果

以演示如何使用的示例mysql_next_result (),请参阅3.6.2节,“支持多语句执行”

返回值

返回值 描述
0 成功了就有更多的结果
-1 成功了,没有更多的结果
> 0 一个错误发生

错误