int mysql_next_result (MYSQL * MYSQL)
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
).在MySQL 5.6中,CLIENT_MULTI_RESULTS
默认启用。
也可以通过调用来测试是否有更多的结果mysql_more_results ()
.但是,这个函数不会改变连接状态,所以如果它返回true,您仍然必须调用mysql_next_result ()
进入下一个结果。
示例,演示如何使用mysql_next_result ()
,请参阅第3.5.2节,“多语句执行支持”.
命令的执行顺序不正确。例如,如果你没有打电话
mysql_use_result ()
查找以前的结果集。MySQL服务器已经消失。
在查询过程中,与服务器的连接丢失。
出现未知错误。