因此,这将不适用于mysql_query。
我严格使用c++,不使用php。
我希望执行这个双重查询,以便在具有并发用户创建ID的事务处理系统中始终具有唯一的ID。
mysql_query(connection, \
"INSERT INTO User() VALUES (); SELECT LAST_INSERT_ID(); ");它在MySql DataBase中工作得很好,但是我需要将它添加到Eclipse中(我使用的是Ubuntu12.04LTS)。
我的应用程序是相当大的,我不想改变到mysqli,如果这是可能的,但如果没有其他方式,它将是可以的。
你能帮我做这个吗?提前谢谢。
发布于 2013-10-12 14:37:34
根据MySQL C文档:
MySQL 5.6还支持执行包含由分号(“;”)字符分隔的多个语句的字符串。使用mysql_real_connect()连接到服务器时或通过调用` mysql_set_server_option()连接后指定的特殊选项启用了此功能。
和:
CLIENT_MULTI_STATEMENTS使mysql_query()和mysql_real_query()能够执行包含由分号分隔的多个语句的语句字符串。此选项还隐式地启用了CLIENT_MULTI_RESULTS,因此CLIENT_MULTI_STATEMENTS到mysql_real_connect()的标志参数等效于CLIENT_MULTI_STATEMENTS \ CLIENT_MULTI_RESULTS的参数。也就是说,CLIENT_MULTI_STATEMENTS足以启用多语句执行和所有多结果处理.
因此,您可以在一个mysql_query()调用中提供几个语句,以分号分隔,假设您使用mysql_real_connect设置您的mysql连接有点不同。您需要传递以下标志作为最后一个参数: CLIENT_MULTI_STATEMENTS,其文档中写着:
告诉服务器,客户端可以在一个字符串中发送多个语句(由“;”分隔)。如果未设置此标志,则将禁用多语句执行。有关此标志的更多信息,请参见此表后面的说明。
有关mroe的详细信息,请参阅支持多条语句执行的C和连接()。
https://stackoverflow.com/questions/19270562
复制相似问题