个人技术分享

QT连接Mysql数据库(详细成功版)-CSD
N博客

我的MySQL是64位的,所以我的Qt的套件也需要是64位的

遇到的问题:

(available drivers中已经有QMYSQL QMYSQL3,还是not loaded)

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

解决方法:Qt与MySQL连接中“QSqlDatabase: QMYSQL driver not loaded”的问题 - 知乎 (zhihu.com) 

下载mysql-connector-c-6.1.3

MySQL :: 下载 MySQL Connector/C(存档版本)

把lib文件夹下的libmysql.dll和libmysql.lib文件复制到Qt构建套件路径

xxx\Qt\5.13.0\mingw73_64\bin

注意区分32位还是64位,mingw还是msvc。

然后就连接成功啦!

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");  //连接本地主机
    db.setPort(3306);
    db.setDatabaseName("information");
    db.setUserName("root");
    db.setPassword("156707lpl");
    bool ok = db.open();
    if (ok) {
        qDebug() << "link success";
    }
    else {
        qDebug() << "link failed";
        qDebug() << "error open database because" << db.lastError().text();
    }
        QSqlQuery query(db);
        query.prepare("INSERT INTO users VALUES(NULL, 'test', 'test@runoob.com', '2022-01-01', true); ");
        if (!query.exec())
        {
            qDebug() << query.lastError();
        }