c/c++ 获取mysql数据库以blob类型储存的图片
简单的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类型储存的图片的更多相关文章
- MySQL数据库传输BLOB类型数据丢失 解决办法
修改MySQL安装目录下my.ini文件配置:
- Mysql 数据库date, datetime类型设置0000-00-00默认值(default)报错问题
Mysql 数据库date, datetime类型设置0000-00-00默认值报错问题 现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00&q ...
- java的Date类型转换为MySQL数据库的Date类型
最近遇到一个问题,需要把java中的日期类型存放为MySQL数据库的日期类型,两个日期之间需要进行转化才能进行存储,转化代码如下: package com.alphajuns.demo1; impor ...
- java获取mysql数据库表、字段、字段类型、字段注释
最近想要写一个根据数据库表结构生成实体.mapper接口.mapping映射文件.service类的简单代码生成工具,所以查阅了一些资料,怎样获取数据库的表.表中字段.字段类型.字段注释等信息. 最后 ...
- MySQL数据库中tinyint类型字段读取数据为true和false
今天遇到这么一个问题,公司最近在做一个活动,然后数据库需要建表,其中有个字段是关于奖励发放的状态的字段,结果读取出来的值为true 一.解决读取数据为true/false的问题 场景: 字段:stat ...
- python 获取mysql数据库列表以及用户权限
一.需求分析 需要统计出当前数据库的所有数据库名,以及每个用户的授权信息. 获取所有数据库 在mysql里面,使用命令: show databases 就可以获取所有数据库了 获取所有用户 执行命令: ...
- PHP快速获取MySQL数据库表结构
直接举例某个数据库中只有两个数据表,一个 test ,一个 xfp_keywords ,获取他们的数据库表结构. 此功能可以用于开发人员快速获取数据表结构通过获取的数据生成各种文件形式,用来快速理解数 ...
- MySQL数据库中tinyint类型字段读取数据为true和false (MySQL的boolean和tinyint(1))
数据库一个表中有一个tinyint类型的字段,值为0或者1,如果取出来的话,0会变成false,1会变成true. MySQL保存boolean值时用1代表TRUE,0代表FALSE.boolean在 ...
- MySQL数据库中字段类型为tinyint,读取出来为true/false的问题
由于MySQL中没有boolean类型,所以会用到tinyint类型来表示. 数据库一个表中有一个tinyint类型的字段,值为0或者1,如果取出来的话,0会变成false,1会变成true.
随机推荐
- ThreadLocalMap里Entry声明为WeakReference
Java里,每个线程都有自己的ThreadLocalMap,里边存着自己私有的对象.Map的Entry里,key为ThreadLocal对象,value即为私有对象T.在spring MVC中,常用T ...
- 【LeetCode-easy】Merge Two Sorted Lists
思路:指针p用于串联怎个链表,比较两个指针的大小,连接较小的一个.如果一个链表到达链尾,连接另外一个链表余下来的所以节点. public ListNode mergeTwoLists(ListNode ...
- absolute布局的替代实现
京东商城首页标价定位 小横条首页导航的下拉 1.京东商城首页标价定位 .p-img{ height: 130px;} .p-price{ margin:-28px 0 0 74px;} .price{ ...
- cygwin添加到有右键菜单
cygwin添加到有右键菜单 前提 为了在windows中使用cygwin编译指定文件代码更为方便,所以动心思琢磨把cygwin添加到右键菜单,百度了一下,发现很多这样的教程,但是有问题,比如添加了但 ...
- image auto fix the View
image: { flex: 1, width: null, height: null, resizeMode: 'contain' }
- codeforces 112B Petya and Square
B. Petya and Square time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- cmd 环境变量设置方法详细解释
cmd设置环境变量可以方便我们bat脚本的运行,但是要注意的是变量只在当前的cmd窗口有作用(局部生效),如果想要设置持久的环境变量需要我们通过两种手段进行设置:一种是直接修改注册表,另一种是通过我的 ...
- Dictionary and KeyValuePair关系
简单一句话: Dictionary 是 由 KeyValuePair结构 组成的集合 The Dictionary<TKey, TValue>.Enumerator.Current pro ...
- apace搭建站点
Listen 127.0.0.1:3310<VirtualHost *:3306> ServerName 127.0.0.1:3306 DocumentRoot "F:/Baid ...
- Zeppelin- Linux下安装Zeppelin
前期部署: 下载,解压,配置PATH环境(编辑/etc/profile文件,记得source一下该文件) zepplin配置参考文档:https://zeppelin.apache.org/docs/ ...