根据MySQL C API文档:
MySQL
5.6还支持执行包含以分号(``;’‘)字符分隔的多个语句的字符串。通过使用mysql_real_connect()连接到服务器时或通过调用mysql_set_server_option()连接后指定的特殊选项,可以启用此功能。
和:
CLIENT_MULTI_STATEMENTS使mysql_query()和mysql_real_query()能够执行包含由分号分隔的多个语句的语句字符串。此选项还隐式启用CLIENT_MULTI_RESULTS,因此,将CLIENT_MULTI_STATEMENTS的flags参数设置为mysql_real_connect()等效于CLIENT_MULTI_STATEMENTS
| CLIENT_MULTI_RESULTS。也就是说,CLIENT_MULTI_STATEMENTS足以启用多语句执行和所有多结果处理。
因此,假设您使用mysql_real_connect设置了一些不同的mysql连接,则可以在单个mysql_query()调用中提供多个语句,并用分号分隔。您需要将以下标志作为最后一个参数传递:CLIENT_MULTI_STATEMENTS,其文档说:
告诉服务器客户端可以在单个字符串中发送多个语句(以``;’‘分隔)。如果未设置此标志,则禁用多语句执行。有关此标志的更多信息,请参见此表后面的注释。
请参阅C API对多语句执行的支持和22.8.7.53。mysql_real_connect()了解更多详细信息。



