C++完成使用map Update数据 二进制数据

 1、在LXMysql.h和LXMysql.cpp分别定义和编写关于pin语句的代码

//获取更新数据的sql语句 where语句中用户要包含where 更新std::string GetUpdatesql(XDATA kv, std::string table, std::string where);
std::string LXMysql::GetUpdatesql(XDATA kv, std::string table, std::string where){string sql = "";if (kv.empty() || table.empty()){return "";}//update t_vedio set name= 'update001', size=1000 where id =10;sql = "update `";sql += table;sql += "` set ";for (auto ptr = kv.begin(); ptr != kv.end();ptr++){sql += "`";sql += ptr->first;sql += "`=' ";sql += ptr->second.data;sql += "',";}//去除多余的逗号sql[sql.size() - 1] = ' ';sql += " ";sql += where;return sql;}

2、在LXMysql.h和LXMysql.cpp分别定义和编写UpdateBin  插入二进制数据

    //返回更新数量,失败返回-1int UpdateBin(XDATA kv, std::string table, std::string where);
int LXMysql::UpdateBin(XDATA kv, std::string table, std::string where){if (!mysql || kv.empty() || table.empty()){return -1;}//update t_vedio set name= 'update001', size=1000 where id =10;string sql = "";sql = "update `";sql += table;sql += "` set ";MYSQL_BIND bind[256] = { 0 };int i = 0;for (auto ptr = kv.begin(); ptr != kv.end();ptr++){sql += "`";sql += ptr->first;sql += "`=?,";bind[i].buffer = (char*)ptr->second.data;bind[i].buffer_length = ptr->second.size;//强转bind[i].buffer_type = (enum_field_types)ptr->second.type;i++;}//去除多余的逗号sql[sql.size() - 1] = ' ';sql += " ";sql += where;//预处理sql语句 上下文MYSQL_STMT* stmt = mysql_stmt_init(mysql);if (!stmt){cerr << "mysql_stmt_init failed " << mysql_error(mysql) << endl;return -1;}if (mysql_stmt_prepare(stmt, sql.c_str(), sql.length())){mysql_stmt_close(stmt);cerr << "mysql_stmt_prepare failed " << mysql_stmt_error(stmt) << endl;return -1;}//绑定if (mysql_stmt_bind_param(stmt, bind) != 0){mysql_stmt_close(stmt);cerr << "mysql_stmt_bind_param failed " << mysql_stmt_error(stmt) << endl;return false;}//执行if (mysql_stmt_execute(stmt) != 0){mysql_stmt_close(stmt);cerr << "mysql_stmt_execute failed " << mysql_stmt_error(stmt) << endl;return -1;}mysql_stmt_close(stmt);return mysql_stmt_affected_rows(stmt);}

3、测试

//更新二进制数据//修改id=3的图片XDATA udata2;LXData file2;file2.LoadFile("F:/Documents/Desktop/c++/数据库plus/src/bin/test2.jpg");udata2["data"] = file2;cout << " my.UpdateBin=" << my.UpdateBin(udata2, "t_vedio", "where id=3") << endl;file2.Drop();

 

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

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

相关文章

三分钟教你如何把不要钱的ChatGPT3.5用出花钱4.0的效果!

三分钟教你如何把不要钱的ChatGPT3.5用出花钱4.0的效果&#xff01; 关注微信公众号 DeepGo 计算机杂谈及深度学习记录&分享 上一期我们聊到 ChatGPT4.0确实在各方面都优于3.5 花了钱的就是不一样 但我们有没有办法去弥补这一差距呢&#xff1f; 今天我就来教你 转发…

mysql表设计

表设计流程&#xff1a; &#xff08;1&#xff09;分库&#xff1a;根据模块分 &#xff08;2&#xff09;分表&#xff1a;根据流程分表 &#xff08;3&#xff09;冗余字段和视图设计 21个表设计准则 &#xff08;1&#xff09;命名规范 account_no,account_number 表名用t…

OpenCV-38 图像金字塔

目录 一、图像金字塔 1. 高斯金字塔 2. 拉普拉斯金字塔 一、图像金字塔 图像金字塔是图像中多尺度表达的一种&#xff0c;最主要用于图像的分割&#xff0c;是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说&#xff0c;图像金字塔是同一图像不同分辨率的子图…

【RabbitMQ(一)】:基本介绍 | 配置安装与快速入门

应该是新年前最后一篇博客了&#xff0c;明天浅浅休息一下&#xff0c;提前祝大家新年快乐捏&#xff01;&#x1f60a;&#x1f60a;&#x1f60a; 01. 基础理解 1.1 同步调用和异步调用 &#x1f449; 同步调用 的时候调用者会 阻塞 等待被调用函数或方法执行完成&#xff…

《Java 简易速速上手小册》第9章:Java 开发工具和框架 (2024 最新版)

文章目录 9.1 Maven 和 Gradle - 构建与依赖管理的神兵利器9.1.1 基础知识9.1.2 重点案例&#xff1a;使用 Maven 构建 Spring Boot 应用9.1.3 拓展案例 1&#xff1a;使用 Gradle 构建多模块项目9.1.4 拓展案例 2&#xff1a;利用 Gradle Wrapper 确保构建的一致性 9.2 Spring…

InstantBox:开箱即用的临时 Linux 环境

在云计算和虚拟化技术日益成熟的今天&#xff0c;我们有时需要一个快速、简单、临时的 Linux 环境来进行各种任务。这就是 InstantBox 的用武之地。 什么是 InstantBox&#xff1f; InstantBox 是一个开源项目&#xff0c;它可以快速启动临时的 Linux 系统&#xff0c;并提供…

Vue-自定义属性和插槽(五)

目录 自定义指令 基本语法 (全局&局部注册) 指令的值 练习&#xff1a;v-loading 指令封装 总结&#xff1a; 插槽&#xff08;slot&#xff09; 默认插槽 插槽 - 后备内容&#xff08;默认值&#xff09; 具名插槽 具名插槽基本语法: 具名插槽简化语法: 作…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之StepperItem组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之StepperItem组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、StepperItem组件 用作Stepper组件的页面子组件。 子组件 无。 接口 St…

浅谈进制的转换

本文创作灵感来自CSDN咸鱼WCY 的 咸鱼小白学嵌入式之C语言&#xff08;2.进制&#xff09; 博主更完就没更了&#xff0c;决定书接上回&#xff08;喜 进制是个啥 要理解进制&#xff0c;首先哈&#xff0c;咱得知道不同进制的含义 说到底&#xff0c;各个进制其实有点像在…

双活工作关于nacos注册中心的数据迁移

最近在做一个双活的项目&#xff0c;在纠结一个注册中心是在双活机房都准备一个&#xff0c;那主机房的数据如果传过去呢&#xff0c;查了一些资料&#xff0c;最终在官网查到了一个NacosSync 的组件&#xff0c;主要用来做数据传输的&#xff0c;并且支持在线替换注册中心的&a…

java SSM新闻管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM新闻管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S…

springsecurity6使用

spring security 中的类 &#xff1a; AuthenticationManager : 实现类&#xff1a;ProviderManager 管理很多的 provider &#xff0c;&#xff0c;&#xff0c; 经常使用的&#xff0c;DaoAuthenticationProvider , 这个要设置一个 UserDetailService , 查找数据库&#xff…

生存类游戏《幻兽帕鲁》从部署服务器到开始体验全过程

SteamDB数据显示&#xff0c;《幻兽帕鲁》上线24小时内&#xff0c;在线人数峰值便突破200万&#xff0c;跻身Steam历史排行榜第二位。随着热度进一步发酵&#xff0c;《幻兽帕鲁》官方发布推文称&#xff0c;游戏发售不到6天&#xff0c;销量已经突破了 800万份。欢迎大家在阿…

‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序

遇到 vue-cli-service 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 的错误时&#xff0c;通常意味着Vue CLI没有被正确安装或配置在项目中。这可能是因为node_modules目录缺失了必要的包&#xff0c;或者局部安装的Vue CLI没有被正确设置到系统的PATH环境…

消息中间件面试篇

目录 消息中间件 RabbitMQ 消息不丢失 生产者确认机制 消息持久化 交换机持久化 队列持久化 消息持久化 消费者确认 消息重复消费 出现的场景 解决方案 每条消息设置一个唯一的标识id 幂等方案&#xff1a;【 分布式锁、数据库锁&#xff08;悲观锁、乐观锁&#…

【教学类-48-04】202402013“天干地支 六十一甲子”.

背景需求&#xff1a; 2024年是甲辰龙年。 “辛亥革命”“甲午海战”"戊戌变法”都有天干地支的身影。 参观历史建筑&#xff0c;不少书法碑刻上都是用天干地支进行年代记名 所以我用Python来制作60一甲子的所有天干地支组合 60一甲子 天干地支的排序 作者&#xff1a;阿…

JavaScript中有哪些不同的数据类型

在 JavaScript 中&#xff0c;数据类型是一种用来表示数据的分类&#xff0c;它决定了我们可以对这个数据类型执行哪些操作。在 JavaScript 中有以下几种不同的数据类型&#xff1a; 基本数据类型 字符串 (String)&#xff1a;表示一组字符&#xff0c;可以使用引号&#xff08…

理解JAVA EE设计模式

理解JAVA EE设计模式 在Web应用程序的设计和开发阶段,开发人员在开发类似的项目时可能会遇到相似的问题。每名开发人员可能会遇到的问题找出不同或相似的解决方案。但是,这导致一些时间和精力浪费在为相似的问题寻找解决方案上。因此,要啊节省时间和精力,需要记录常见问题…

VMware清理拖拽缓存 Ubuntu硬盘情况占用分析

这两天在尝试编译Linux源码&#xff0c;我在win上将源码下载下来然后复制到ubuntu上&#xff0c;这一步我粗略看到了三种方法&#xff1a;安装VM tools&#xff0c;就可以使文件正常的在win和ubuntu中复制剪切&#xff1b;使用scp命令将win和linux系统链接起来&#xff1b;使用…

柚见(伙伴匹配系统)第三期

后端整合SwaggerKnife4j 什么是接口文档 什么是接口文档&#xff1f; 写接口信息的文档&#xff0c; 每条接口包括&#xff1a; 请求参数响应参数错误码接口地址接口名称请求类型请求格式备注 who 谁用&#xff1f; 一般是后端或者负责人来提供&#xff0c;后端和前端都要使用…