int mysql_stmt_next_result(MYSQL *mysql)
Description
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 21.9.15, “C API Support for Prepared CALL
Statements”.
mysql_stmt_next_result()
was
added in MySQL 5.5.3.
Return Values
Return Value | Description |
0 | Successful and there are more results |
-1 | Successful and there are no more results |
>0 | An error occurred |
Errors
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.
User Comments
Add your own comment.