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

时间:2014-01-08 16:20:53

标签: mysql qt qsqlquery

我有一个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 个答案:

答案 0 :(得分:1)

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();
}