因此,这不适用于mysql_query。
我严格使用c ++,并且我没有使用php。
我希望执行此双重查询,以便在由并发用户创建ID的交易系统中,我将始终具有唯一ID。
mysql_query(connection, \ "INSERT INTO User() VALUES (); SELECT LAST_INSERT_ID(); ");
它可以完美地在MySql数据库中运行,但是我需要将其添加到Eclipse(我正在使用Ubuntu 12.04 LTS)。
我的应用程序很大,如果可能的话,我不想更改为mysqli,但是如果没有其他方法,那就可以了。
你能帮我吗?提前致谢。
根据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()了解更多详细信息。