在VS2022中用C++连接MySQL数据库读取数据库乱码问题

ops/2025/1/20 6:40:43/

1.正确安装mysql

安装之后的配置文件

2.在VS2022中进行相关配置

(1)右键项目,打开属性

注意是右键项目,不是.cpp文件

(2)配置属性-> VC++目录  -> 包含目录 ->添加头文件路径(如图)

(3)配置属性-> VC++目录  -> 库目录 ->添加动态库路径(如图)

(4)在  链接器 -> 输入 ->附加依赖项 中输入libmysql.lib

(5)  将了lib文件夹中的libmysql.dll文件  复制到C:\Windows\System32

接下来 就可以可以运行代码了

#include<iostream>
#include<mysql.h>using namespace std;int main() {MYSQL* conn;   // MySQL连接MYSQL_RES* res;   // MySQL查询结果MYSQL_ROW row;   // MySQL行// std::locale::global(std::locale("en_US.UTF-8"));  // 将程序的全局区域设置为 UTF-8 区域,//连接数据库的信息const char* server = "localhost";const char* user = "ml";const char* password = "123456";const char* datebase = "testdb";// 初始化MySQL连接conn = mysql_init(NULL);// 连接数据库if (conn == NULL) {cerr << "MYSQL数据库初始化失败" << endl;return 1;}if (mysql_real_connect(conn, server, user, password, datebase, 0, NULL, 0) == NULL) {cerr << "MYSQL数据库连接失败:" << mysql_error(conn) << endl;return 1;}// 查询数据库mysql_query(conn, "set names utf8");if (mysql_query(conn, "SELECT * FROM tb_user")) {cerr << "查询失败" << mysql_error(conn) << endl;return 1;}// 获取查询结果res = mysql_use_result(conn);//输出结果/*while ((row = mysql_fetch_row(res)) != NULL) {cout << row[0] << " " << row[1] << endl;}*/// 逐行输出结果while ((row = mysql_fetch_row(res)) != NULL) {// 输出当前行的所有列数据for (int i = 0; i < mysql_num_fields(res); ++i) {if (i > 0) {cout << " ";  // 列之间用空格分隔}if (row[i] == NULL) {cout << "NULL";  // 处理 NULL 数据}else {cout << row[i];}}cout << endl;  // 行尾输出换行符}// 释放结果mysql_free_result(res);// 关闭连接mysql_close(conn);return 0;
}

3.中文乱码

运行之后,中文乱码

这是因为:数据库编码格式为utf8mb4,但是黑窗口gbk,

所以要进行全局编码设置

问题解决!!


http://www.ppmy.cn/ops/151597.html

相关文章

Markdown学习笔记(2)

一、Markdown 代码 如果是段落上的一个函数或片段的代码可以用反引号把它包起来&#xff08;&#xff09;&#xff0c;例如&#xff1a; printf() 函数 打印出sent中每个数据包的摘要信息print(sent.summary()) 代码区块 代码区块使用 4 个空格或者一个制表符&#xff08;…

物联网在烟草行业的应用

物联网技术在烟草行业的应用 物联网技术在烟草行业的应用主要体现在以下几个方面&#xff1a; 智能制造 &#xff1a;物联网技术可以实现对生产过程中的关键参数进行实时监测&#xff0c;确保产品的质量稳定可靠。同时&#xff0c;通过对设备的远程维护和故障诊断&#xff0c;…

【MySQL】表操作

表操作 一、创建表 1、语句2、语句介绍3、注意事项4、介绍5、示例 二、查看表结构 1、语句2、介绍3、返回的信息4、示例 三、添加字段 1、语句2、语句介绍3、示例 四、修改 1、语句2、语句介绍3、示例 五、删除 1、语句2、示例 六、修改表名 1、语句2、语句介绍3、示例 七、删…

Spring Web MVC 探秘

一、生活中的Spring Web MVC 对于Spring Web MVC这个专业名称&#xff0c;很多人都不清楚这个东西是干什么的&#xff0c;其实&#xff0c;Spring Web MVC在生活中无处不在&#xff0c;我们经常会使用到它们。 假如你打开在线书店的网站&#xff0c;在首页的搜索框中输入了 “编…

HTML学习笔记(3)

一、元素种类 块级元素(标签,盒子) 特点:独占一行,对宽度高度支持内联级元素(标签,盒子) 特点:不独占一行,对宽度高度不支持内联块级元素(标签,盒子) 特点:不独占一行,对宽度高度支持弹性盒子 1.块级元素如div、p、h1~h6、ul、li等等&#xff0c;一个元素标签占一行&#xff0…

51单片机——DS18B20温度传感器

由于DS18B20数字温度传感器是单总线接口&#xff0c;所以需要使用51单片机的一个IO口模拟单总线时序与DS18B20通信&#xff0c;将检测的环境温度读取出来 1、DS18B20模块电路 传感器接口的单总线管脚接至单片机P3.7IO口上 2、DS18B20介绍 2.1 DS18B20外观实物图 管脚1为GN…

数据结构9——二叉搜索树

&#x1f947;1.二叉搜索树的概念 二叉搜索树(Binary Search Tree,BST)又称二叉排序树或二叉查找树&#xff0c;其要么是一棵空树&#xff0c;要么具有以下性质&#xff1a; ①&#xff1a;左子树上所有节点的值都小于根节点&#xff1b; ②&#xff1a;右子树上所有节点的值都…

iOS - Objective-C 底层实现中的哈希表

1. 关联对象存储&#xff08;AssociationsHashMap&#xff09; // 关联对象的哈希表实现 typedef DenseMap<const void *, ObjcAssociation> ObjectAssociationMap; typedef DenseMap<DisguisedPtr<objc_object>, ObjectAssociationMap> AssociationsHashMa…