MySQL C++ 不读取结果
MySQL C++ Not reading results
我正在尝试使用8.0.13 MySQL C++连接器从数据库中读取数据。我能够成功写入数据库没有问题,但是当我尝试获取数据库的结果(接下来使用结果)时,它永远不会运行。
bool outPutBool;
string outPut;
try {
sql::Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
sql::ResultSet *res;
string test = getTest();
/* Create a connection */
driver = get_driver_instance();
con = driver->connect("tcp://ip:port", "root", "password");
/* Connect to the MySQL test database */
con->setSchema("database name");
stmt = con->createStatement();
res = stmt->executeQuery("SELECT `column name` FROM `table name` WHERE `test column` = '" + variable + "'"); //Variable is defined in the function input
while (res->next()) {
outPut = res->getString(1);
cout << outPut << endl;
cout << "Testn"; //never runs
}
delete res;
delete stmt;
delete con;
}
catch (sql::SQLException &e) {
cout << "# ERR: SQLException in " << __FILE__;
cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << endl;
cout << "# ERR: " << e.what();
cout << " (MySQL error code: " << e.getErrorCode();
cout << ", SQLState: " << e.getSQLState() << " )" << endl;
}
Sleep(10000); //Temporary delay so I can see if anything comes up before it runs another function
if (test != outPut)
doSomething();
else
doSomethingElse();
while 循环永远不会运行,我不知道为什么会发生这种情况,因为它似乎适用于许多其他人。我已经将所有库和标头包含在连接器库中,但没有帮助。
在phpmyadmin中使用SQL查询函数可以正确显示输出,因此这不是查询的错。
如果有人能在这里给我一些帮助,我将不胜感激,如果您有任何问题或需要更多我的代码,请问。非常感谢您的帮助!
我不确定如何,但是在查询和 while 循环之间简单地添加一个 cout 语句后,它突然解决了自己。我取下了cout,现在它完全没有问题。不确定是什么导致了此错误,但我很高兴在我尝试修复它一段时间后它自行解决了!
当您动态连接 SQL 语句并且它没有返回您期望的结果时,生成的 SQL 语句通常与您预期的那样。
很难说出了什么问题,因为当然,如果没有您的 DBMS,我们就无法重现它。但通常人们会将SQL语句写入stdout,然后将其复制到交互式SQL控制台,然后看看会发生什么:
std::string query = "SELECT `column name` FROM `table name` WHERE `test column` = '" + variable + "'";
std::cout << query << std::endl; // open console and copy/paste it to your DBMS
res = stmt->executeQuery(query); //Variable is defined in the function input
相关文章:
- 如何读取 C++ SAFEARRAY**,该 SAFEARRAY** 是 COM 互操作的结果,其中 C# 返回值为
- 读取一组用户输入,按升序排序,然后打印结果
- 硬编码字符串与强制转换为 PUCHAR 并打印到控制台时从控制台读取的字符串的结果不同
- 尝试以随机字符(长读取)打印字符串返回结果
- 从文本文件中读取并使用 sizeof 结果计算整数的数量到 nan
- C++ 读取逗号与不需要的结果分开
- 多线程文件读取为每个线程生成相同的结果
- MySQL C++ 不读取结果
- 为什么 protobuf 只读取最后一条消息作为输入结果
- 使用fstream从二进制文件中读取并将结果存储在向量中
- 正在读取C++中的二进制文件,并将结果输出为hexdump
- 从文件中读取结果数据,加载它,比较它,然后打印显示
- 执行控制台程序,写入标准输入并使用管道读取结果
- 读取文本文件并在C/C++中每行只得到最后一个整数的结果
- 是否可以从readelf命令中读取结果
- 使用boost(C++库)读取执行命令的结果
- 从文件中读取的浮点值与计算结果不一致
- 读取文件行和查询结果的编程函数
- 读取文件和使用getline进行标准输入的结果不同
- 最后的文件行读取会产生不同的结果