6.4.17 mysql_stmt_next_result ()

int mysql_stmt_next_result (MYSQL_STMT * mysql)

描述

此函数在使用prepared时使用调用语句来执行存储过程,可返回多个结果集。使用循环调用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.6.4节“预处理CALL语句支持”

返回值

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

错误