简单的code如下:

#include <iostream>
#include <fstream>
#include <sstream>
#include <cstring>
#include <mysql/mysql.h>
using namespace std; int main()
{
const char username[] = "username";
const char password[] = "password";
const char host[] = "192.168.0.100";
const char dbname[] = "dbname"; MYSQL conn;
if(NULL == mysql_init(&conn))
{
cerr << "init conn fail." << endl;
exit(-);
} if (NULL == mysql_real_connect(&conn, host, username, password, dbname, , NULL, ))
{
cerr << "connect to database error" << endl;
exit(-);
} char sql[] = "select octet_length(picture), picture from tablename";
if ( != mysql_real_query(&conn, sql, strlen(sql)))
{
cerr << "query error." << endl;
exit(-);
} MYSQL_RES * result = NULL;
result = mysql_store_result(&conn);
if (NULL == result)
{
cerr << "store result error." << endl;
exit(-);
} if ( >= mysql_affected_rows(&conn))
{
cerr << "no data be found." << endl;
exit(-);
} int count = ;
string path = "/home/tsfh/pictures/";
MYSQL_ROW row_record;
while (row_record = mysql_fetch_row(result))
{
unsigned int size = ;
char * temp_buff = NULL; sscanf(row_record[], "%d", &size);
if( == size )
{
cerr << "invalid record!" << endl;
continue;
} temp_buff = (char *)malloc(size * sizeof(char) + );
if(NULL == temp_buff)
{
cerr << "malloc error!" <<endl;
exit();
}
memset(temp_buff, , size * sizeof(char) + );
memcpy(temp_buff, row_record[], size * sizeof(char)); stringstream pic_name;
pic_name << count << ".jpg";
ofstream outfile(path + pic_name.str(), ios::binary);
outfile.write(temp_buff, size); count++;
free(temp_buff);
} mysql_close(&conn);
return ;
}

c/c++ 获取mysql数据库以blob类型储存的图片的更多相关文章

  1. MySQL数据库传输BLOB类型数据丢失 解决办法

    修改MySQL安装目录下my.ini文件配置:

  2. Mysql 数据库date, datetime类型设置0000-00-00默认值(default)报错问题

    Mysql 数据库date, datetime类型设置0000-00-00默认值报错问题 现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00&q ...

  3. java的Date类型转换为MySQL数据库的Date类型

    最近遇到一个问题,需要把java中的日期类型存放为MySQL数据库的日期类型,两个日期之间需要进行转化才能进行存储,转化代码如下: package com.alphajuns.demo1; impor ...

  4. java获取mysql数据库表、字段、字段类型、字段注释

    最近想要写一个根据数据库表结构生成实体.mapper接口.mapping映射文件.service类的简单代码生成工具,所以查阅了一些资料,怎样获取数据库的表.表中字段.字段类型.字段注释等信息. 最后 ...

  5. MySQL数据库中tinyint类型字段读取数据为true和false

    今天遇到这么一个问题,公司最近在做一个活动,然后数据库需要建表,其中有个字段是关于奖励发放的状态的字段,结果读取出来的值为true 一.解决读取数据为true/false的问题 场景: 字段:stat ...

  6. python 获取mysql数据库列表以及用户权限

    一.需求分析 需要统计出当前数据库的所有数据库名,以及每个用户的授权信息. 获取所有数据库 在mysql里面,使用命令: show databases 就可以获取所有数据库了 获取所有用户 执行命令: ...

  7. PHP快速获取MySQL数据库表结构

    直接举例某个数据库中只有两个数据表,一个 test ,一个 xfp_keywords ,获取他们的数据库表结构. 此功能可以用于开发人员快速获取数据表结构通过获取的数据生成各种文件形式,用来快速理解数 ...

  8. MySQL数据库中tinyint类型字段读取数据为true和false (MySQL的boolean和tinyint(1))

    数据库一个表中有一个tinyint类型的字段,值为0或者1,如果取出来的话,0会变成false,1会变成true. MySQL保存boolean值时用1代表TRUE,0代表FALSE.boolean在 ...

  9. MySQL数据库中字段类型为tinyint,读取出来为true/false的问题

    由于MySQL中没有boolean类型,所以会用到tinyint类型来表示. 数据库一个表中有一个tinyint类型的字段,值为0或者1,如果取出来的话,0会变成false,1会变成true.

随机推荐

  1. python get post模拟请求

    1.使用get方式时.url相似例如以下格式: &op=bind   GET报问头例如以下: &n=asa HTTP/1.1    Accept: */*    Accept-Lang ...

  2. python调试利器:最直观简洁的错误日志

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2018-08-30 17:12:27 # @Author : Sheldon (thi ...

  3. 【windows】如何让一个程序开机自启动

    windows的开机自启动也是将一个程序放在文件夹下即可,将应用程序或者快捷方式放在如下文件夹下,即可实现开机自启动 C:\ProgramData\Microsoft\Windows\Start Me ...

  4. C++ 构造函数+析构函数

    3-2 构造函数的调用 Time Limit: 1000MS Memory limit: 65536K 题目描述 通过本题目的练习可以掌握构造函数和析构函数的调用: 创建类A:类中仅包含构造函数和析构 ...

  5. ZOJ - 3430 Detect the Virus —— AC自动机、解码

    题目链接:https://vjudge.net/problem/ZOJ-3430 Detect the Virus Time Limit: 2 Seconds      Memory Limit: 6 ...

  6. process调用protothread机制的相关宏定义——用HelloWorld进程诠释

    一.HelloWorld例子 #include "contiki.h" #include <stdio.h> /* For printf() */ /*-------- ...

  7. myBatis 如何接受 返回count(*),sum()得到的int值

    <select id="selectRemainder" resultType="java.lang.Integer"> SELECT SUM(aw ...

  8. tensorflow knn mnist

    # MNIST Digit Prediction with k-Nearest Neighbors #----------------------------------------------- # ...

  9. yii2 linux安装教程

    安装扩展 安装Yii最好的方式就是使用Composer安装,所以我们需要安装Composer,但是为了安装Composer,我们需要安装一下关于Composer和Yii2的许多扩展包,别担心下面的教程 ...

  10. linux 进程学习笔记-暂停进程

    <!--[if !supportLists]-->Ÿ <!--[endif]-->暂停进程 int pause() 其会挂起当前进程直到有信号来唤醒或者进程被结束. 随便提一下 ...