进入实战
学了这么几天就要开发新项目了,所以可能不会每日记录吧,遇到问题可能就发一下,
昨天是又重新写了一个登录和管理界面,写完之后就可以开始链接数据库了。
QT连接MYSQL报错
我一开始是在.pro文件中加上了
QT+=sql
QT+=mysql
在添加上Mysql connector C++和MYSQL的lib和includePath,然后报错是未知的模块:mysql,再之后就怎么折腾都连接不成功
我测试连接的cpp源代码:
#include <QCoreApplication>
#include <QtSql>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("testqtconn");
db.setUserName("root");
db.setPassword("123456");
// db.open();
if (db.open())
{
qDebug() << "Database connected!";
QSqlQuery query;
query.prepare("SELECT * FROM login");
if (query.exec())
{
while (query.next())
{
QString name = query.value(0).toString();
int age = query.value(1).toInt();
qDebug() << "Name: " << name << "Age: " << age;
}
}
else
{
qDebug() << "Query failed: " << query.lastError().text();
}
}
else
{
qDebug() << "Database failed to connect: " << db.lastError().text();
}
return a.exec();
}
在之后请教了前辈:把QT+=mysql和lib以及includePath从文件中去掉,把mysql驱动的动态库文件添加到qt对应的目录中,我的目录是:…\Qt\Qt5.14.2\5.14.2\mingw73_64\plugins\sqldrivers,动态库文件我放到我的GitHub对应的仓库中了,有需要的小伙伴可以去我的仓库里面下载,注意这个驱动只能放到64位的mingw编译器中
这个时候执行还是会执行失败,显示Mysql驱动未加载,这个时候需要在当前项目的构建(带debug的文件夹)的目录中添加mysql的动态库文件,构建目录是类似于下面这种:
如果有需要,也可以去我的仓库里面下载,但是一般安装好了MySQL,就可以在MYSQL的lib目录下找到这里给出路径 …\MYSQL\lib\libmysql.dll。
放到构建目录中之后就可以执行成功了:
执行结果如下:
如果想看完整的代码,我也上传到github上了,小伙伴们可以点击挑战查看,欢迎fork、star和follow!