数据库中二进制数据图片的读取并存储为文件C++

插入二进制数据https://blog.csdn.net/wjl990316fddwjl/article/details/135334950我们需要将插入的数据进行读取,本文主要介绍如何C++如何将数据库中二进制数据图片进行读取和存储

1、查询数据

sql="select * from t_data";

2、获得查询结果

MYSQL_RES *res=mysql_store_result(&mysql);

 3、获取行数据

MYSQL_ROW row=mysql_fetch_row(res);

4、 写入文件

fstream out(filename_out,ios::out|ios::binary);
out.write(row[2],lens[2]);
//查询二进制数据,并保存为文件//sql = "select * from t_data limit 1"; //只查找第一个,效率会更高vsql = "select * from t_data";re = mysql_query(&mysql, sql.c_str());if (re != 0){cerr << "mysql_query failed" << mysql_error(&mysql) << endl;}MYSQL_RES* res = mysql_store_result(&mysql);if (!res){cerr << "mysql_store_result failed" << mysql_error(&mysql) << endl;}//取一行数据 是一个数组MYSQL_ROW row = mysql_fetch_row(res);if (!row){cerr << "mysql_fetch_row failed" << mysql_error(&mysql) << endl;}//如果没有size,可以获取size//获取每列数据的大小,这个是根据当前的unsigned long *lens = mysql_fetch_lengths(res);//具体写入文件string filename_out = "out_1";filename_out += row[1];//写入fstream out(filename_out,ios::out|ios::binary);if (!out.is_open()){cerr << "open_filename" << filename_out << "falied" << endl;}out.write(row[2], lens[2]);out.close();

查看是否存储成功

注意*****

必须将文件最后进行关闭

out.close();

完整代码

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<stdio.h>
#include<mysql.h>
#include<thread>
#include<map>
#include<sstream>
#include<fstream>
//计时
#include<chrono>
using namespace std;
using namespace chrono;int main()
{const char* host = "127.0.0.1";const char* user = "root";const char* password = "******";const char* database = "database_test";int port = 3306;MYSQL mysql;mysql_init(&mysql);mysql_library_init(0, NULL, NULL);//防止乱码mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "GBK");//支持多条sql语句 CLIENT_MULTI_STATEMENTS   clientflag  默认是不支持的//if (!mysql_real_connect(&mysql, host, user, password, database, port, 0, 0))if (!mysql_real_connect(&mysql, host, user, password, database, port, NULL, 0)){cout << "failed to connect" << host << mysql_error(&mysql) << endl;}else{cout << "successfully connected " << host <<endl;}//查询二进制数据,并保存为文件//sql = "select * from t_data limit 1"; //只查找第一个,效率会更高vsql = "select * from t_data";re = mysql_query(&mysql, sql.c_str());if (re != 0){cerr << "mysql_query failed" << mysql_error(&mysql) << endl;}MYSQL_RES* res = mysql_store_result(&mysql);if (!res){cerr << "mysql_store_result failed" << mysql_error(&mysql) << endl;}//取一行数据 是一个数组MYSQL_ROW row = mysql_fetch_row(res);if (!row){cerr << "mysql_fetch_row failed" << mysql_error(&mysql) << endl;}//存取文件 第三个字段取出来cout << row[0] << " " << row[1] << " " << row[3] << endl;//如果没有size,可以获取size//获取每列数据的大小,这个是根据当前的unsigned long *lens = mysql_fetch_lengths(res);//有几列,这个是根据结果来计算的int fnum = mysql_num_fields(res);for (int i = 0;i < fnum;i++){cout << "[" << lens[i] << "]";}//具体写入文件string filename_out = "out_1";filename_out += row[1];//写入fstream out(filename_out,ios::out|ios::binary);if (!out.is_open()){cerr << "open_filename" << filename_out << "falied" << endl;}out.write(row[2], lens[2]);out.close();mysql_close(&mysql);mysql_library_end();system("pause");return 0;
}

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

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

相关文章

IF;10.0+,中科院1区TOP,Elsevier出版社,发文量大!毕业首选!

【SciencePub学术】本期&#xff0c;小编给大家推荐的是一本Elsevier旗下、工程技术领域、影响因子为10.0的中科院1区TOP。其详情如下&#xff1a; 期刊简介 ENERGY CONVERSION AND MANAGEMENT ISSN&#xff1a;0196-8904 E-ISSN&#xff1a;1879-2227 IF&#xff08;2…

软件测试行业最核心的竞争力是什么?

在当今数字化时代&#xff0c;软件测试行业已成为科技领域不可或缺的一环。软件测试人员扮演着保障产品质量和用户满意度的重要角色。然而&#xff0c;随着行业的竞争日益激烈&#xff0c;如何保持竞争力成为软件测试人员必须思考的问题。 为了弄清楚这个问题&#xff0c;我和…

AMEYA360:思瑞浦汽车级LIN收发器全家族产品TPT1021Q、TPT1022Q、TPT1024Q

聚焦高性能模拟芯片和嵌入式处理器的半导体公司--思瑞浦&#xff0c;发布汽车级LIN收发器——TPT102xQ系列产品(TPT1021Q、TPT1022Q、TPT1024Q)。 TPT102xQ系列满足ISO/DIS 17987-4、SAE J2602和LIN2.x物理层标准&#xff0c;可广泛应用在车身控制、灯光照明、底盘控制、信息娱…

数据库进阶教学——主从复制(Ubuntu22.04主+Win10从)

目录 一、概述 二、原理 三、搭建 1、备份数据 2、主库配置Ubuntu22.04 2.1、设置阿里云服务器安全组 2.2、修改配置文件 /etc/my.cnf 2.3、重启MySQL服务 2.4、登录mysql&#xff0c;创建远程连接的账号&#xff0c;并授予主从复制权限 2.5、通过指令&#xff0c;查…

mysql 条件位运算实现多值存储

一、多值存储 mysql 条件位运算位运算实现多值存储&#xff0c;方法适合数据范围有限&#xff0c;且不会变更在业务上往往会出现多选的情况&#xff0c;例&#xff1a;选择 周一 至 周日 随意组合&#xff1b; 数据在设计时就会如何去储存&#xff1f; 一种是一般是在储存是以…

阶段五-JavaWeb综合练习-学生管理系统

一.项目说明 1.前台 (用户使用) 前端,后端 2.后台 (管理员使用) 前端,后端 3.该项目为后台管理系统 项目开发流程: 1.需求分析 1.1 登录功能 用户访问登录页面输入用户名和密码,并且输入验证码。全部输入正确后点击登录&#xff0c;登录成功跳转主页面&#xff1b;登录…

清风数学建模笔记-因子分析

内容&#xff1a;因子分析 概念&#xff1a; 通过分析研究变量间的相关系数矩阵&#xff0c;把这些变量间错综复杂的关系归结成少数几个综合因子&#xff0c;由于归结出的因子个数少于原始变量的个数&#xff0c;但是又包含原始变量的信息&#xff0c;所以这一过程也称之为降…

清风数学建模-数学规划模型

内容&#xff1a;数学规划模型&#xff08;cab aeqbeq lbub&#xff09; 一.题型类型 1.线性规划linprog 2.非线性规划 fmincon 3.整数规划 intlinprog 4.&#xff08;0-1规划&#xff09;&#xff08;特殊的线性整数规划&#xff09;intlinprog 5.多目标规划 linprog 标…

STM32 ESP8266 物联网智能温室大棚 (附源码 PCB 原理图 设计文档)

资料下载: https://download.csdn.net/download/vvoennvv/88680924 一、概述 本系统以STM32F103C8T6单片机为主控芯片&#xff0c;采用相关传感器构建系统硬件电路。其中使用DHT11温湿度传感器对温度和湿度的采集&#xff0c;MQ-7一氧化碳传感器检测CO浓度&#xff0c;GP2Y101…

python拆分句子、去除句子符号等并分词

import redef split_text_into_batches(text, max_tokens_per_batch):# 定义一个正则表达式&#xff0c;在中文标点符号处拆分句子sentence_splitter re.compile(r(?<[。&#xff01;&#xff1f;]))# 将文本拆分为句子sentences [sentence.strip() for sentence in sent…

设计模式:简单工厂模式、工厂方法模式、抽象工厂模式

简单工厂模式、工厂方法模式、抽象工厂模式 1. 为什么需要工厂模式&#xff1f;2. 简单工厂模式2.1. 定义2.2. 代码实现2.3. 优点2.4. 缺点2.5. 适用场景 3. 工厂方法模式3.1. 有了简单工厂模式为什么还需要有工厂方法模式&#xff1f;3.2. 定义3.3. 代码实现3.4. 主要优点3.5.…

深入数组扩展应用

一、字符串反转 例如&#xff1a;‘123abc’----->‘cba321’ 字符串方法实现: var str 123abcvar reversFn function(str) {var newStr for (var i str.length - 1; i > 0; i--) {newStr str[i]}return newStr }console.log(reversFn(str));数组方法实现&#xf…

Elasticsearch:如何使用 Elasticsearch 进行排序

虽然你在唱这首歌时可能会想象圣诞老人&#xff0c;但欧洲民间传说&#xff0c;尤其是阿尔卑斯地区的民间传说&#xff0c;有两个传奇人物圣尼古拉斯和坎普斯。 象征着慷慨和善良的圣尼古拉斯&#xff0c;在 12 月 6 日 为乖巧的孩子们带来礼物和欢乐&#xff01; 相比之下&…

【C语言】作用域 和 生命周期

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

MR混合现实情景实训教学系统在法律专业课堂上的应用

MR混合现实情景实训教学系统是一种将虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;相结合的先进技术。在法律教学课堂上&#xff0c;MR教学系统为学生模拟模拟法庭、案例分析等多种形式&#xff0c;让学生在实践中掌握法律知识&#xff0c;提高法律…

JDK下载地址

1.官网下载java 1.8地址&#xff08;需要注册一个oracle账户&#xff09;&#xff1a; Java Downloads | Oracle 清华镜像下载 Index of /AdoptOpenJDK/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 3.华为镜像下载 https://repo.huaweicloud.com/java/jdk/

计算机网络--作业

作业一 1、比较电路交换、报文交换和分组报文交换优缺点 电路交换 电路交换是以电路连接为目的的交换方式&#xff0c;通信之前要在通信双方之间建立一条被双方独占的物理通道&#xff08;由通信双方之间的交换设备和链路逐段连接而成&#xff09;。 优点&#xff1a; ①由于…

实战SRC | api接口未授权 + 越权漏洞

本文由掌控安全学院 - zxl2605 投稿 一次在fofa上通过学习的fofa语句进行查询&#xff0c;无意中查询到了一个网址 其登录界面如下&#xff1a; 使用浏览器的F12打开开发者工具&#xff0c;查看JS寻找接口&#xff1a; 从JS代码中查询到一处接口如下&#xff1a; 发现是以p…

java数据结构

文章目录 一.链表LinkedList1. 创建链表2. 插入元素3. 删除元素4. 访问元素5. 检查元素是否存在6. 遍历链表7. 其他常见操作 ListNode 一.链表 链表&#xff08;LinkedList&#xff09;是Java集合框架&#xff08;Java Collections Framework&#xff09;中的一部分&#xff0…

bilibili深入理解计算机系统笔记(3):使用C语言实现静态链接器

本文是2022年的项目笔记&#xff0c;2024年1月1日整理文件的时候发现之&#xff0c;还是决定发布出来。 Github链接&#xff1a;https://github.com/shizhengLi/csapp_bilibili 文章目录 可执行链接文件(ELF)ELF headerSection header符号表symtab二进制数如何和symtab结构成员…