私信  •  关注

Redanium

Redanium 最近创建的主题
Redanium 最近回复了
6 年前
回复了 Redanium 创建的主题 » qt5从mysql数据库中选择数据

更新

您的查询中有错误 (有时需要在Qt喜欢的另一个环境中调试查询 mysql clis 或者网上的 http://sqlfiddle.com )

SELECT username,password from users where username = :username AND password = :password

而不是

SELECT username and password from users where username = :username AND password = :password

更正的答案

void MainWindow::on_loginBtn_clicked() {

  QSqlDatabase db;

  db = QSqlDatabase::addDatabase("QMYSQL", "MyConnect");
  db.setHostName("localhost");
  db.setUserName("root");
  db.setPassword("");
  db.setDatabaseName("qtregister");

  QString username = ui - > loginEdit - > text();
  QString password = ui - > loginPassword - > text();

  if (db.open()) {

    QSqlQuery query(db);

    query.prepare(QString("SELECT username , password from users where username = :username AND password = :password"));
    query.bindValue(":username", username);
    query.bindValue(":password", password);

    if (!query.exec()) {
      QMessageBox::information(this, "Failed", "Error in executing query");

    } else {
      while (query.next()) {
        QString usernameFromDB = query.value(0).toString();
        QString passwordFromDB = query.value(1).toString();
        qDebug() << usernameFromDB << passwordFromDB;
        if (usernameFromDB == username && passwordFromDB == password)
          QMessageBox::information(this, "Success", "Login Success");
        else
          QMessageBox::information(this, "Failed", "Username or password error");
      }
    }
  } else {
    QMessageBox::information(this, "Not Connected", "Not Conneced Success");
  }
}