gpt4 book ai didi

C++ MySQL 没有正确返回结果集

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

所以我有一个在 mySQL 命令上完美运行的 SQL 语句,但是当我在 C++ 中执行完全相同的语句时,它返回一个空的结果集...

这是代码的相关部分:

ps = con->prepareStatement("SELECT UserID, DB, IsAdmin FROM Users WHERE 
Username = ? AND Password = ?");

cout << "Username: ";
cin >> username;
cin.ignore(INT_MAX, '\n');
cout << "Password: ";
cin >> username;
cin.ignore(INT_MAX, '\n');
cout << endl;

ps->setString(1, username.c_str());
ps->setString(2, password.c_str());
rs = ps->executeQuery();
if (rs->next())
{
connected = true;
sessionID = rs->getInt(1);
database = rs->getString(2).c_str();
admin = rs->getBoolean(2);
}

if(rs->next()) 始终评估 false,无论我使用普通语句还是 PreparedStatement。更奇怪的是,当我将语句更改为仅 SELECT * FROM Users 时,它确实返回了行。这不可能是因为我的 WHERE 子句,因为它在 MySQL 命令上正确运行。当我删除 cin.ignore() 时它仍然不起作用,所以这也不是问题。

如有任何帮助,我们将不胜感激!

最佳答案

你打错了。当您询问密码时,您正在将其写入用户名字符串。

cout << "Username: ";
cin >> username;
cin.ignore(INT_MAX, '\n');
cout << "Password: ";
cin >> username;

更改为:

cout << "Username: ";
cin >> username;
cin.ignore(INT_MAX, '\n');
cout << "Password: ";
cin >> password;

关于C++ MySQL 没有正确返回结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43934295/

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