6.4.17 mysql_stmt_next_result ()

int mysql_stmt_next_result (MYSQL_STMT * mysql)

描述

此功能在使用准备时使用调用语句执行存储过程,可以返回多个结果集。使用调用的循环mysql_stmt_next_result ()来确定是否有更多的结果。如果一个过程INOUT参数后,它们的值将作为单行结果集返回,紧跟在任何其他结果集之后。这些值将按照它们在过程参数列表中声明的顺序出现。

有关未处理的条件对过程参数的影响的信息,请参见条件处理和OUT或INOUT参数

mysql_stmt_next_result ()返回指示是否存在更多结果的状态。如果mysql_stmt_next_result ()返回一个错误,没有更多的结果。

每次呼叫前mysql_stmt_next_result (),你必须打电话mysql_stmt_free_result ()对于当前结果,如果它产生了结果集(而不仅仅是结果状态)。

后调用mysql_stmt_next_result ()连接的状态与调用相同mysql_stmt_execute ().这意味着您可以调用mysql_stmt_bind_result ()mysql_stmt_affected_rows ()等等。

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

示例,演示如何使用mysql_stmt_next_result (),请参阅第3.5.4节,“准备好的CALL语句支持”

返回值

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

错误