在Qt中使用MySQL

Qt学习:在Qt中使用MySQL


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

意思是QMSQL驱动没有加载。

那么尝试加载驱动呢?


 
 
  1. QPluginLoader loader;
  2. loader.setFileName( "C:\\Qt\\Qt5.8.0\\5.8\\mingw53_32\\plugins\\sqldrivers\\qsqlmysqld.dll"); // 报“找不到指定模块”
  3. qDebug()<<loader.load();
  4. 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、连接代码


 
 
  1. QSqlDatabase db = QSqlDatabase::addDatabase( "QMYSQL");
  2. db.setHostName( "localhost");
  3. db.setPort( 3306);
  4. db.setDatabaseName( "test");
  5. db.setUserName( "root");
  6. db.setPassword( "");
  7. if(!db. open())
  8. return false;
  9. return true;

7、数据库编码选择

utf8_general_ci
 
 

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

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


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

 

http://www.qter.org/portal.php?mod=list&catid=18

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值