前言:

一直以来操作数据库我用的都是python,第一次使用C++来操作Mysql数据库,中间遇到了许多问题,特别是Mysql版本为64位,但想在x86或win32下开发Mysql的问题。把这些经验进行总结,希望可以帮到遇到同样问题的朋友。如果对您有帮助,您的三连是对我最大的鼓励,谢谢。

顺带一提:

python操作Mysql数据的经验总结

环境配置:

操作系统:win10 64bit

开发环境:Visual Studio 2019

使用的Mysql版本:8.0

首先是运行环境,因为系统是64位系统,下载的Mysql也是64位,而visual sutido 2019创建的项目默认是32位的。这时就会报错:

刚开始完全没有思路怎么解决,后来才知道,其实只要把运行环境改成x64就行,即:

(以上办法是针对只在x64下运行,如果要想在win32或x86下运行,请跳转至步骤6的位置)此时运行代码,依然会报错:缺少libmysql.dll

解决办法:设置项目属性

步骤1:打开项目属性

步骤2:将MySQL Server下的include文件路径添加至【配置属性——C/C++——常规——附加包含目录】

步骤3:将MySQL Server下的lib文件路径添加至【配置属性——链接器——常规——附加包含目录】

 步骤4:在【配置属性——链接器——输入——附件依赖项】中添加libmysql.lib

步骤5:把MySQL Server 8.0\lib下的libmysql.dll文件拷贝至C:\Windows\System32中。重启。

(这是我的libmysql.dll文件的路径:C:\Program Files\MySQL\MySQL Server 8.0\lib)

步骤6:

针对Mysql版本是64位,但是想在x86或win32下开发Mysql的解决办法。

步骤2-4不变以外,针对步骤5变化。

首先下载32位的libmysql.dll文件和libmysql.lib文件。将32位的libmysql.dll文件保存至C:\Windows\SysWOW64中。将32位的libmysql.lib文件与原文件进行替换。原文件夹(MySQL Server 8.0\lib)下面64位的libmysql.dll文件可以不用管。

下载地址:

libmysql.dll与libmysql.lib 32位与64位下载

至此环境上配置完毕

代码:

#include <iostream>
#include "C:\Program Files\MySQL\MySQL Server 8.0\include\mysql.h"
//mysql.h文件路径会根据自己的情况发送改变,注意
using namespace std;void main()
{MYSQL m_sql;mysql_init(&m_sql);if (!mysql_real_connect(&m_sql, "localhost", "root", "1111", "mysql_test", 3306, NULL, 0)){cout << "fail" << endl;}//修改数据char update[200] = "UPDATE control_message SET m_start=5 WHERE message_id=0;";mysql_query(&m_sql, update);//插入数据char insert[200] = "insert into laser_message(message_id,m_start,m_info) values(0,0,"ABC");";mysql_query(&m_sql, insert);//读取char select[200] = "select * from laser_message";//各种语言字符集,根据需求设定//mysql_query(&m_sql, "set names utf8");//mysql_query(&m_sql, "set names gbk");//mysql_query(&m_sql, "set names sjis");mysql_query(&m_sql, select);MYSQL_RES* result;result = mysql_store_result(&m_sql);//打印列表名MYSQL_FIELD *fields;fields = mysql_fetch_fields(result);  //返回所有列auto num = mysql_num_fields(result);for (auto j = 0; j<num; j++){cout << fields[j].name << "  ";}cout << endl;//打印列表值MYSQL_ROW row;unsigned int i, num_c;num_c = mysql_num_fields(result);  while (row = mysql_fetch_row(result)){for (i = 0; i < num_c; i++){cout << row[i] << "  ";}cout << endl;}mysql_free_result(result);
}

注意:数据库的读写存在编码转换的问题,不然会乱码,如果可以尽量用英文来设计数据库,这样可以有效避免这个问题。

C++读写Mysql数据库相关推荐

  1. pandas读写MySQL数据库详解及实战

    pandas读写MySQL数据库详解及实战 SQLAlchemy是Python中最有名的ORM工具. 关于ORM: 全称Object Relational Mapping(对象关系映射). 特点是操纵 ...

  2. java读写mysql数据库_Java读写MySQL数据库小实例

     Java读写MySQL数据库小实例 首先需要安装和配置好MySQL数据库.接下来,先创建一个数据库,Java代码连接此数据库,然后读写. 假设基于MySQL命令行创建一个叫做:phildatab ...

  3. Zeppelin上通过Spark读写mysql数据库

    Zeppelin上通过Spark读写mysql数据库 一.从mysql数据库获取数据 二.把处理后的数据再插入到mysql数据库 一.从mysql数据库获取数据 %spark val df = spa ...

  4. 使用php读写mysql数据库并显示到网页上

    由于工作的原因,需要了解下bs模式下的读写数据库的流程,将试验过程梳理一下. 我采用的是phpstudy搭建数据库,mysql数据库已经搭建完成,名称为2018版本,如下图: 由于我前期安装过apac ...

  5. datagridview控件读写mysql数据库表格的方法_C#读写Access数据库、表格datagridview窗体显示代码实例...

    C#读写Access数据库.表格datagridview窗体显示代码实例 最近项目中用到C#对于Access数据库表读写.mdb操作,学习了下相关的东西,这里先整理C#对于Access数据库的操作,对 ...

  6. c语言多线程mysql_多线程读写mysql数据库

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 unsigned int __stdcall scan(PVOID pM) { char ip[20]; strcpy(ip, (char*)pM); M ...

  7. c 多线程mysql_多线程读写mysql数据库

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 unsigned int __stdcall scan(PVOID pM) { char ip[20]; strcpy(ip, (char*)pM); M ...

  8. 多线程写mysql数据库_多线程读写mysql数据库

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 unsigned int __stdcall scan(PVOID pM) { char ip[20]; strcpy(ip, (char*)pM); M ...

  9. python后台架构Django教程——连接读写mysql数据库

    全栈工程师开发手册 (作者:栾鹏) python教程全解 本文衔接至python后台架构Django开发全解. 有其他问题请先阅读:http://blog.csdn.net/luanpeng82548 ...

最新文章

  1. 物资管理信息系统5 -- 删除用户界面
  2. 极致CMS个人博客企业官网模板
  3. RS232应用----电功率计
  4. 折纸机器人的步骤图解_折纸图解公牛
  5. 我们的系统是否需要EJB3?
  6. 宝塔更换域名_搭建小程序之BT宝塔面板的操作使用教程
  7. 用计算机进行实时自动采集,动态数据采集
  8. 如何通过VISIO来画网络拓扑图
  9. cloudstack vpc network egress-ingress rules
  10. ROS应用开发入门 服务数据的定义和使用
  11. 如何利用手机访问电脑本地的localhost?
  12. html中spry的长度怎么更改,Dreamweaver中Spry区域功能说明
  13. 我心爱的吉他坏了,心里像少了什么一样:(
  14. 前端比较好用的一个Flex布局样式包
  15. 《草书识别》隐私政策
  16. 中标麒麟系统u盘安装_U盘安装中标麒麟Linux桌面版的方法
  17. 【译】Java编程动态性,第 2部分: 反射简介
  18. python 特殊方法是什么_Python类的特殊方法
  19. PCM混音算法 C++实现 (包括归一化加权算法,时间片切割算法,幅值简单叠加算法)
  20. latex写姓名_用Latex写学术论文:作者(Author)摘要(Abstract)

热门文章

  1. linux进程创建 摘要,文章摘要 lnmp的搭建
  2. ffmpeg每隔30帧抽取1帧画面
  3. 基于Python实现机器人自动走迷宫【100011016】
  4. 【Python 应用篇】Email 邮件发送
  5. 海盗分金的完整解析版
  6. ArrayList排序返回值问题
  7. 标题栏修改背景色或背景图
  8. Linux下的USB转SATA学习
  9. 一行代码生成Tableau可视化图表
  10. HP 3PAR 8440存储更换故障硬盘