6.4.17 mysql_stmt_next_result()

int
mysql_stmt_next_result(MYSQL_STMT *mysql)

描述

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

有关未处理条件对过程参数的影响的信息,请参阅 条件处理和 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.5 节,“准备好的 CALL 语句支持”

返回值

返回值 描述
0 成功并有更多结果
-1 成功,没有更多结果
>0 发生错误

错误