Spec-Zone .ru
спецификации, руководства, описания, API
|
int mysql_stmt_next_result(MYSQL_STMT *mysql)
This function is used when you use prepared CALL
statements to execute stored procedures, which can return multiple result sets. Use a loop that calls mysql_stmt_next_result()
to determine whether there are more results. If a procedure has OUT
or INOUT
parameters, their values will be returned as a single-row result set
following any other result sets. The values will appear in the order in which they are declared in the procedure
parameter list.
mysql_stmt_next_result()
returns
a status to indicate whether more results exist. If mysql_stmt_next_result()
returns an error, there are no more results.
Before each call to mysql_stmt_next_result()
,
you must call mysql_stmt_free_result()
for the current result if it produced a result set
(rather than just a result status).
After calling mysql_stmt_next_result()
the state of the connection is as if you had called mysql_stmt_execute()
. This means that you can call mysql_stmt_bind_result()
, mysql_stmt_affected_rows()
, and so forth.
It is also possible to test whether there are more results by calling mysql_more_results()
. However, this function does not change the connection
state, so if it returns true, you must still call mysql_stmt_next_result()
to advance to the next result.
For an example that shows how to use mysql_stmt_next_result()
,
see Section 22.8.20, "C API Support for Prepared
CALL
Statements".
Return Value | Description |
---|---|
0 | Successful and there are more results |
-1 | Successful and there are no more results |
>0 | An error occurred |
Commands were executed in an improper order.
The MySQL server has gone away.
The connection to the server was lost during the query.
An unknown error occurred.