vs c++ 查询mysql 获取返回集数据转化

返回集数据结构[ 指针数组1 -> ["值1", "值2", "值3", ...], 指针数组2 -> ["值1", "值2", "值3", ...], ... ]

改为

指针 -> [ {"字段1": "值1", "字段2": "值2", ...}, {"字段1": "值1", "字段2": "值2", ...}, ... ]

vector<map<string, string>> result; // [{ "id": "3","name": "Michael","age" : "35"},{},{},...]// 执行查询
/*1 查询  mysql_query 只返回成功失败 ->数据保存到内存2 获取结果指针 mysql_store_result3 处理数据
*/
if (mysql_query(con, sql.c_str()) == 0) { // 该函数用于执行SQL查询语句,其中con是数据库连接对象,sql.c_str()将sql字符串转换为C风格的字符串。如果执行成功,返回值为0MYSQL_RES* result_set = mysql_store_result(con); // 该函数用于获取查询结果集,返回一个指向结果集的指针result_set [  ["1", "John", "25"],["2", "Alice", "30"] , ["3", "Michael", "35"]]if (result_set != NULL) {int num_fields = mysql_num_fields(result_set); // 该函数用于获取结果集中的字段数。列数MYSQL_ROW row; // [指针1,指针2,指针3]  MYSQL_ROW是MySQL C API中定义的数据类型,用于表示结果集中的一行数据。它实际上是一个字符指针数组,每个元素都指向一列数据的字符串值MYSQL_FIELD* fields = mysql_fetch_fields(result_set); // 获取所有字段信息while ((row = mysql_fetch_row(result_set)) != NULL) { // 该函数用于逐行获取结果集中的数据,返回一个指向当前行数据的指针row。当没有更多行可获取时,返回NULL。map<string, string> row_data; // 定义了一个空的map对象for (int i = 0; i < num_fields; i++) { // 取一行 每一列的取值row_data[fields[i].name] = row[i]; // row_data['id'] = row[0] row_data['获取字段名'] = 获取值 的意思是将获取到的值存储到 row_data 这个 map 对象中,以字段名作为键,值作为对应的值mysql_fetch_field_direct(result_set, i)->name}result.push_back(row_data); //  是向 vector 的尾部添加一个元素的函数}// 将每个字段的指针形式改为一个指向整体字典的指针mysql_free_result(result_set); // 整个过程就是把数据从[[],[],[],,,] 变成[{},{},{},,,] 变为把第一个内存清空 新的数据结构存在新的内存中 将数据从 vector<vector<string>> 的结构转换为 vector<map<string, string>> 的结构}
}
else {cout << "查询失败: " << mysql_error(con) << endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/579764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dash中 基本的 callback 5

app.callback 在Dash中&#xff0c;app.callback 被用于创建交互性应用程序&#xff0c;它用于定义一个回调函数&#xff0c;该函数在应用程序中发生特定事件时被触发。回调函数可以修改应用程序的布局或更新图表等内容&#xff0c;从而实现动态交互。 下面是一个简单的 app.…

JMeter

1. 请简要介绍一下JMeter是什么&#xff0c;以及它的主要用途。 Apache JMeter是一个基于Java的压力测试工具&#xff0c;最初设计用于Web应用测试&#xff0c;但现在已经扩展到Apache JMeter是一个基于Java的压力测试工具&#xff0c;最初设计用于Web应用测试&#xff0c;但现…

65内网安全-域环境工作组局域网探针

这篇分为三个部分&#xff0c;基本认知&#xff0c;信息收集&#xff0c;后续探针&#xff0c; 基本认知 分为&#xff0c;名词&#xff0c;域&#xff0c;认知&#xff1b; 完整架构图 名词 dwz称之为军事区&#xff0c;两个防火墙之间的区域称之为dwz&#xff0c;但安全性…

Maven 项目依赖仓库配置详解:pom.xml 中的 repositories 与 Maven 配置文件的调用顺序

Maven 项目依赖仓库配置详解&#xff1a;pom.xml 中的 repositories 与 Maven 配置文件的调用顺序 Maven&#xff08;Apache Maven&#xff09;是一个流行的项目管理工具&#xff0c;广泛用于Java项目的构建、依赖管理以及项目生命周期的管理。在Maven项目中&#xff0c;pom.x…

视频批量处理:随机分割方法,创新剪辑方式

随着数字媒体技术的飞速发展&#xff0c;视频处理已是日常生活和工作中不可或缺的一部分。在处理大量视频时&#xff0c;要一种高效、自动化的方法来满足需求。现在一起来看云炫AI智剪如何批量随机分割视频的批量处理方法&#xff0c;给视频剪辑工作带来创新。 视频随机分割4段…

SAP PP 配置学习(三)

Classification 分类 关联特征值 – (省市联动) 关联特征显示 一个特征是否输入&#xff0c;根据另一个特征来判断。如&#xff1a;只有输入了省份&#xff0c;才需要输入城市。没输省份前&#xff0c;城 市这个特征是不可见的。 修改【城市】特征. 在【城市】特征值中&#xf…

禁止浏览器记住密码和自动填充 element-ui+vue

vue 根据element-ui 自定义密码输入框&#xff0c;防止浏览器 记住密码和自动填充 <template><divclass"el-password el-input":class"[size ? el-input-- size : , { is-disabled: disabled }]"><inputclass"el-input__inner"…

【Unity6.0+AI】Unity版的Pytorch之Sentis-把大模型植入Unity

本教程详细讲解什么Sentis。以及恶补一些人工智能神经网络的基础概念,概述了基本流程,加载模型、输入内容到模型、使用GPU让模型推理数据、输出数据。 官方文档 Unity Sentis: Use AI models in Unity Runtime | Unity 主页介绍 官方文档链接:Sentis overview | Sentis | 1…

vue3+ts 可视化大屏无限滚动table效果实现

注意&#xff1a;vue3版本需使用 vue3-seamless-scroll npm npm install vue3-seamless-scroll --save页面引入 TS import { Vue3SeamlessScroll } from "vue3-seamless-scroll";代码使用&#xff08;相关参数可参考&#xff1a;https://www.npmjs.com/package/vu…

C#/WPF JSON序列化和反序列化

什么是json json是存储和交换文本信息的方法&#xff0c;类似xml。但是json比xml更小&#xff0c;更快&#xff0c;更易于解析。并且json采用完全独立于语言的文本格式(即不依赖于各种编程语言)&#xff0c;这些特性使json成为理想的数据交换语言。json序列化是指将对象转换成j…

Spark RDD的行动操作与延迟计算

Apache Spark是一个强大的分布式计算框架&#xff0c;用于大规模数据处理。在Spark中&#xff0c;RDD&#xff08;弹性分布式数据集&#xff09;是核心概念之一&#xff0c;而RDD的行动操作和延迟计算是Spark的关键特性之一。本文将深入探讨什么是Spark RDD的行动操作以及延迟计…

Unity3D 中播放 RTSP 监控视频

【Unity 3D】怎么在 WebGL 中低延迟播放 RTSP 监控 - 简书[Unity 3D] 开箱即食的头部监控厂商 SDK 集成框架 - 简书 Unity3d Windows播放视频&#xff08;视频流&#xff09;功能组/插件支持对比_ffmpeg for unity-CSDN博客Unity UMP打包黑屏问题总结-CSDN博客Unity Universal…

Unity中Shader裁剪空间推导(正交相机到裁剪空间的转化矩阵)

文章目录 前言一、正交相机视图空间 转化到 裁剪空间 干了什么1、正交相机裁剪的范围主要是这个方盒子2、裁剪了之后&#xff0c;需要把裁剪范围内的坐标值化到[-1,1]之间&#xff0c;这就是我们的裁剪空间。3、在Unity中&#xff0c;设置相机为正交相机4、在这里设置相机的近裁…

[足式机器人]Part2 Dr. CAN学习笔记-Ch00 - 数学知识基础

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Ch00 - 数学知识基础 1. Ch0-1矩阵的导数运算1.1标量向量方程对向量求导&#xff0c;分母布局&#xff0c;分子布局1.1.1 标量方程对向量的导数1.1.2 向量方程对向量的导数 1.2 案例分析&#xf…

Chrome插件精选 — 前端工具

Chrome实现同一功能的插件往往有多款产品&#xff0c;逐一去安装试用耗时又费力&#xff0c;在此为某一类型插件挑选出比较好用的一款或几款&#xff0c;尽量满足界面精致、功能齐全、设置选项丰富的使用要求&#xff0c;便于节省一个个去尝试的时间和精力。 1. FeHelper(前端助…

【网络协议】远程登录安全连接协议SSH(Secure Shell)

文章目录 什么是SSH协议&#xff1f;SSH为何是安全的&#xff1f;SSH由哪些组件构成&#xff1f;SSH可以帮助实现的功能SSH的工作原理SSH的历史版本常用的SSH工具有哪些SSH配置案例参考Windows 安装SSHUbuntu系统SSH配置Cisco Switch SSH配置华为Switch SSH配置 客户端启用SSH连…

WPF 消息日志打印帮助类:HandyControl+NLog+彩色控制台打印

文章目录 前言相关文章Nlog配置HandyControl配置简单使用显示效果文本内容 前言 我将简单的HandyControl的消息打印系统和Nlog搭配使用&#xff0c;简化我们的代码书写 相关文章 .NET 控制台NLog 使用 WPF-UI HandyControl 控件简单实战 C#更改控制台文字输出颜色 Nlog配置 …

macos管理本地golang的多版本sdk

背景 无论你是哪个编程语言的开发者&#xff0c;例如 Java、Go 等&#xff0c;通常在本地开发过程中&#xff0c;你经常需要安装相应的 SDK。由于各种原因&#xff0c;往往需要在不同的项目中来回切换多个版本的 SDK。 安装步骤 1.安装homebrew /bin/bash -c "$(curl -…

vue中 ref 和 reactive 的区别与联系

官方原文&#xff1a;Vue3 建议使用 ref() 作为声明响应式状态的主要API。 ref 用于将基本类型的数据&#xff08;如字符串、数字&#xff0c;布尔值等&#xff09;和引用数据类型(对象) 转换为响应式数据。使用 ref 定义的数据可以通过 .value 属性访问和修改。reactive 用于…

什么是数据可视化?数据可视化的流程与步骤

前言 数据可视化将大大小小的数据集转化为更容易被人脑理解和处理的视觉效果。可视化在我们的日常生活中非常普遍&#xff0c;但它们通常以众所周知的图表和图形的形式出现。正确的数据可视化以有意义和直观的方式为复杂的数据集提供关键的见解。 数据可视化定义 数据可视化…