База данных QT MySql проверяет логин и пароль для входа - PullRequest
0 голосов
/ 13 мая 2018

Я хочу сделать приложение в 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();
    }


}

}

1 Ответ

0 голосов
/ 13 мая 2018

Как уже упоминалось в комментариях, вы должны сначала узнать об основных SQL-запросах.Допустим, у вас есть таблица users и столбцы, как показано ниже:

| userId | name | username | password |

Имея myUsername и myPassword из вашего пользовательского приложения, ваш запрос SQL может выглядеть следующим образомэто:

SELECT userID, name from users WHERE username = 'myUsername' AND password = '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.";
        }
    }
}

Обратите внимание, что я предполагаю, что это для целей обучения.Рекомендуется хранить пароль хэш вместо обычного текста.Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...