gpt4 book ai didi

c++ - 在 MySQL Connector C++ API 中通过一个函数调用执行多个查询的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-28 01:32:57 25 4
gpt4 key购买 nike

我是 MySQL 的新手,也是他们的 C++ API 并且我在一次执行多个查询而不是调用同一个函数两次时遇到了问题,我的意思是我的查询有点链接和逻辑他们应该立即执行。

比如我曾经这样做过

sql::ResultSet* sqlExecute(std::string Query)
try
{
sql::ResultSet *res;
res = statement->executeQuery(Query);
return res;
}
catch (sql::SQLException& e)
{
if (e.getErrorCode())
outc("%c%s: [SQL %c%d%c]%c %s\n", c_gray, my_time("WARN"), c_dark_purple, e.getErrorCode(), c_gray, c_dark_red, e.what());
return 0;
}

然后这样调用它(两次)

sqlExecute("alter table ###.players AUTO_INCREMENT = 1;");
sqlExecute("insert into ###.players (name, username, password) values('Random Name', 'imrandom', 'this should be random too');");

但是当我尝试只用一个由 ; 分隔的函数调用来执行它们时;

sqlExecute("alter table ###.players AUTO_INCREMENT = 1;insert into ###.players (name, username, password) values('Random Name', 'imrandom', 'this should be random too');");

我得到异常


您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,了解在“插入###.players(名称、用户名、密码)值(第 1 行的‘随机名称’、‘imrand’)附近使用的正确语法


在 MySQL Workbench 中,我可以一次执行多个查询。为什么不也在 API 中?

最佳答案

执行以分号分隔的多条语句的能力取决于 CLIENT_MULTI_STATEMENTS正在启用的连接属性:

sql::ConnectOptionsMap options;
options["CLIENT_MULTI_STATEMENTS"] = true;

sql::mysql::MySQL_Driver *driver = sql::mysql::MySQL_Driver::get_mysql_driver_instance();
sql::Connection *con = driver->connect(options);

关于c++ - 在 MySQL Connector C++ API 中通过一个函数调用执行多个查询的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50778957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com