Qt学习:在Qt中使用MySQL

9 篇文章 1 订阅

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

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值