int mysql_set_server_option(MYSQL *mysql, enum
enum_mysql_set_option option)
Description
Enables or disables an option for the connection.
option
can have one of the following values.
MYSQL_OPTION_MULTI_STATEMENTS_ON |
Enable multiple-statement support |
MYSQL_OPTION_MULTI_STATEMENTS_OFF |
Disable multiple-statement support |
If you enable multiple-statement support, you should retrieve
results from calls to
mysql_query()
or
mysql_real_query()
by using a
loop that calls
mysql_next_result()
to determine
whether there are more results. For an example, see
Section 20.9.12, “C API Support for Multiple Statement Execution”.
Enabling multiple-statement support with
MYSQL_OPTION_MULTI_STATEMENTS_ON
does not
have quite the same effect as enabling it by passing the
CLIENT_MULTI_STATEMENTS
flag to
mysql_real_connect()
:
CLIENT_MULTI_STATEMENTS
also enables
CLIENT_MULTI_RESULTS
. If you are using the
CALL
SQL statement in your
programs, multiple-result support must be enabled; this means
that MYSQL_OPTION_MULTI_STATEMENTS_ON
by
itself is insufficient to allow the use of
CALL
.
Return Values
Zero for success. Nonzero if 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.
The server didn't support
mysql_set_server_option()
(which is the case that the server is older than 4.1.1) or
the server didn't support the option one tried to set.
User Comments
This does not do the same thing as setting CLIENT_MULTI_STATEMENTS in the call to mysql_real_connect. When you pass CLIENT_MULTI_STATEMENTS at connection time it also sets the CLIENT_MULTI_RESULTS flag. You don't appear to have control over multiple result sets when using mysql_set_server_option.
Add your own comment.