Не могу выполнить mysql запросы с QT

Я пытаюсь подключиться и выполнить запрос с помощью инфраструктуры QT, я могу подключиться к базе данных mysql, и я проверил запрос и убедился, что он работает в базе данных. Я думаю, что драйвер MySQL правильно установлен, потому что я могу подключиться, и он не выдает никаких ошибок

void Login::on_loginButton_clicked()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setDatabaseName("TestBase");
db.setUserName("username");
db.setPassword("password");
if (!db.open()) {
QMessageBox::critical(0,"Database Error","Could not connect to the database, check your internet connection.");
}QSqlQuery data("SELECT * FROM `TestBase`.`Users` WHERE `userName` = 'Afonso'");
//data.exec("SELECT * FROM `TestBase`.`Users` WHERE `userName` = 'Afonso'");
QMessageBox::information(NULL, "Query executed", "The query returned: " + data.exec());
}

Я также пытался с

data.exec("insert query here");
data.next();

Ничто не похоже на работу

Я пытаюсь отобразить результат запроса в QMessageBox

0

Решение

QSqlQuery query(db);
query.prepare("SELECT * FROM `TestBase`.`Users` WHERE `userName` = :user_name");
query.bindValue(":user_name", "Afonso");
if (!query.exec())
{
qDebug() << query.lastError().text();
retrun;
}
while (query.next())
{
QVariant v = query.value(0);
}
0

Другие решения

Я использую PyQT, но в целом с запросом выбора, я начинаю получать данные с
.first (), а не .exec () .exec_ () в pyqt.
После этого next () работает просто отлично.

-1

По вопросам рекламы [email protected]