Qt学习:在Qt中使用MySQL

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzj0808/article/details/82218216

Qt说是自带MySQL驱动,但是连接数据库时却报错:

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

意思是QMSQL驱动没有加载。

那么尝试加载驱动呢?

    QPluginLoader loader;
    loader.setFileName("C:\\Qt\\Qt5.8.0\\5.8\\mingw53_32\\plugins\\sqldrivers\\qsqlmysqld.dll");// 报“找不到指定模块”
    qDebug()<<loader.load();
    qDebug()<<loader.errorString();

不管是加载qsqlmysqld.dll,还是qsqlmysql.dll都是不行的。

如果在debug模式下加载qsqlmysql.dll则会报不能在debug版本中混用release的dll,那么推测加载路径是没问题的,可能是此dll不能使用。究竟为什么不管用,不知道。

所以,qt虽然说自带mysql的驱动,但是你还是得给他添加驱动。

简单的说,必须在:

C:\Qt\Qt5.8.0\5.8\mingw53_32\bin

中添加一个dll,名为:libmysql.dll

怎么获得这个dll?如果已经有了则直接添加就是;如果没有则安装32位版本的mysql,在安装的时候选择全功能安装,则会生成这个dll。

1、安装mysql32位版本

http://www.qter.org/portal.php?mod=view&aid=10中可以获得mysql安装文件。

2、安装步骤

3、查看新建的mysql数据库

>先进入mysql\bin中双击运行mysqld.exe

>通过命令行查看数据库。初始密码为空,直接回车就好

4、拷贝libmysql.dll

位于MySQL安装目录下面lib文件夹下:

C:\MySQL\lib\libmysql.dll

将其拷贝到:

C:\Qt\Qt5.8.0\5.8\mingw53_32\bin

5、说明

注意:

(1)如果你不连接本地数据库,则只要将此dll拷贝到对应路径(如果已有保存此dll),就可以连接远程数据库了;

(2)不管32位还是64位的mysql,都可以连接。

6、连接代码

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

    db.setHostName("localhost");
    db.setPort(3306);
    db.setDatabaseName("test");
    db.setUserName("root");
    db.setPassword("");

    if(!db.open())
        return false;
    return true;

7、数据库编码选择

utf8_general_ci

8、qt中在数据库中写入中文会报错的问题

qt中要进行相应的设置,在打开数据库前进行设置

    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForLocale(codec);

猜你喜欢

转载自blog.csdn.net/wzj0808/article/details/82218216