int mysql_next_result(MYSQL *mysql)
This function is used when you execute multiple statements
specified as a single statement string, or when you use
CALL statements to execute stored
procedures, which can return multiple result sets.
mysql_next_result() the state of
the connection is as if you had called
mysql_query() for the next
statement. This means that you can call
mysql_affected_rows(), and so
If your program uses
statements to execute stored procedures, the
CLIENT_MULTI_RESULTS flag must be enabled.
This is because each
a result to indicate the call status, in addition to any result
sets that might be returned by statements executed within the
return multiple results, process them using a loop that calls
mysql_next_result() to determine
whether there are more results.
CLIENT_MULTI_RESULTS can be enabled when you
either explicitly by passing the
CLIENT_MULTI_RESULTS flag itself, or
implicitly by passing
(which also enables
is enabled by default.
It is also possible to test whether there are more results by
However, this function does not change the connection state, so
if it returns true, you must still call
mysql_next_result() to advance
to the next result.
For an example that shows how to use
Section 22.8.17, “C API Support for Multiple Statement Execution”.
|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. For example, if
you did not call
mysql_use_result() for a
previous result set.
The MySQL server has gone away.
The connection to the server was lost during the query.
An unknown error occurred.