我想在qt中制作应用程序,其中将登录和注册系统,登录名和密码位于MySQL数据库中。我已将数据库连接到我的应用程序,但我不知道如何将登录名和密码与“行编辑”中给出的进行比较,这是教程中的代码,但它是 SQLite 教程
void login::on_pushButton_sign_in_clicked()
QString login, password;
login = ui->lineEdit_login_login->text();
password = ui->lineEdit_password_login->text();
QSqlQuery qry;
if(qry.exec("select logins, passwords * from users where logins = '" + login + "' and password = '" + password + "' " ))
{
while(qry.next())
{
hide();
mainwindow = new MainWindow(this);
mainwindow->show();
}
}
}
最佳答案
正如评论中提到的,您应该首先了解基本的 SQL 查询。假设您有一个 users
表,其中包含如下列:
|用户 ID |名称 |用户名 |密码|
从您的自定义应用中获取 myUsername
和 myPassword
,您的 SQL 查询可能如下所示:
从用户中选择用户 ID、名称,其中用户名 = 'myUsername' AND 密码 = 'myPassword'
现在,您在代码中使用它:
void login::on_pushButton_sign_in_clicked()
{
QString username = ui->lineEdit_login_login->text();
QString password = ui->lineEdit_password_login->text();
QSqlQuery query;
query.prepare("SELECT userID, name from users WHERE
username = :username AND
password = :password");
query.bindValue(":username", username);
query.bindValue(":password", password);
if (query.exec())
{
if (query.size() > 0)
{
// You login a user here
QString name = query.value(1).toString();
qDebug() << name << "is logged in";
}
else
{
qDebug() << "Login failed. Invalid username or password.";
}
}
}
请注意,我认为这是出于学习目的。建议保存密码hash而不是纯文本。干杯!
关于c++ - QT MySql 数据库检查登录名和密码以登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50311120/