int
mysql_stmt_next_result(MYSQL_STMT *mysql)
当您使用准备好的
CALL
语句执行存储过程时使用此函数,该存储过程可以返回多个结果集。使用调用的循环
mysql_stmt_next_result()
来确定是否有更多结果。如果过程有
OUT
或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 语句支持”。
-
命令的执行顺序不正确。
-
MySQL 服务器已经消失。
-
查询期间与服务器的连接丢失。
-
出现未知错误。