gpt4 book ai didi

mysql - 如何使用 Qt 连接到我的 Web 域的 mySQL 数据库?

转载 作者:行者123 更新时间:2023-11-29 13:19:51 24 4
gpt4 key购买 nike

我有一个 Web 域,并且其中已经有 mySql 数据库。我希望将数据库中的数据连接到我的 Qt 应用程序并从中检索数据。这是我的尝试和结果。 (刚刚编辑了主机名、数据库名称、用户名和密码)。

  QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");

db.setHostName("www.mydomain.com");
db.setDatabaseName("myDatabase");
db.setUserName("myName");
db.setPassword("myPass");

if(!db.open()){
QSqlError err = db.lastError();
qDebug() << err.text();
}
else {
QSqlQuery qry;
qDebug() << "Connected to SQL Database!";
if (qry.exec("select * from dataTable;")){
while(qry.next()){
qDebug() << qry.value(1).toString();
}
}
else {
qDebug() << "ERROR QUERY";
}


qDebug() << "Closing...";
db.close();
}

return a.exec();
}

它表明它已连接,但在执行查询时。它返回一个错误。此外,我尝试更改为无效的主机名和/或用户名,但它仍然连接。

enter image description here

最佳答案

1) 尝试不使用分号。

“对于 SQLite,查询字符串一次只能包含一个语句。” (http://qt-project.org/doc/qt-4.8/qsqlquery.html#exec)

然而这是一个语句,解释器可能会因为分号而感到困惑。

<小时/>

2) “请注意,调用 exec() 时会重置此查询的最后一个错误。” (http://qt-project.org/doc/qt-4.8/qsqlquery.html#exec)

因为这不是准备好的语句,请尝试避免使用 exec(),以便获得有关最后一个错误的信息:

QSqlQuery qry("select * from dataTable");

if(qry.lastError()) {
// ...
}

while(qry.next()) {
qDebug() << qry.value(1).toString();
}

关于mysql - 如何使用 Qt 连接到我的 Web 域的 mySQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21001049/

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