在DBMS中线要创建数据库test,table bintest,data字段数据类型用LONGBLOB即可测试

//测试文件c:\\test.iso,你可以找任何一个文件修改为即可,我找的是一个exe程序,修改为test.iso而已

//最大测试过加入文件大小为650M(一个正真的iso文件)

//注意:还要修改my.ini文件中的max_allowed_packet字段,我设置的是

复制代码代码如下:

//max_allowed_packet = 1024M

//#define host "localhost" //mysql server

//#define username "root"

//#define password "674800"

//#define database "test"

//int port = 3306;

// Mysql3.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include

#include

#include

#include

#include

#include

#include

#include

#pragma comment(lib,"libmysql.lib")

#define INSERT_QUERY "INSERT INTO bintest(id, data) VALUES(NULL, ?)"

#define host "localhost" //mysql server

#define username "root"

#define password "674800"

#define database "test"

int port = 3306;

int get_file_size(char *path, off_t *size)

{

struct stat file_stats;

if(stat(path, &file_stats))

return -1;

*size = file_stats.st_size;

return 0;

}

void test()

{

MYSQL_BIND bind[1];

unsigned long length;

char* pos = NULL;

off_t size;

FILE* fp;

char* filename = "c:\\test.iso";

if ((get_file_size(filename, &size)) == -1) //得到文件的大小

{

perror("get file size" );

exit(1);

}

if ((pos = (char *)malloc(sizeof(char)*(size+1))) == NULL)

{

perror("malloc buf" );

exit(1);

}

if ((fp = fopen(filename, "rb" )) == NULL) //读文件

{

perror("fopen file" );

exit(1);

}

if ((fread(pos, 1, size, fp)) < 0) //读文件失败

{

perror("fread file" );

exit(1);

}

MYSQL *mysql = mysql_init(NULL); //mysql 初始化

if (!mysql)

return;

if (!mysql_real_connect(mysql,host,username,password,"test",port,NULL,0))//链接服务器

{

int ret = mysql_errno(mysql);

mysql_close(mysql);

return;

}

MYSQL_STMT *stmt = mysql_stmt_init(mysql);

if (!stmt)

{

fprintf(stderr, " mysql_stmt_init(), out of memory\n");

exit(0);

}

if (mysql_stmt_prepare(stmt, INSERT_QUERY, strlen(INSERT_QUERY)))

{

fprintf(stderr, "\n mysql_stmt_prepare(), INSERT failed");

fprintf(stderr, "\n %s", mysql_stmt_error(stmt));

exit(0);

}

memset(bind, 0, sizeof(bind));

//bind[0].buffer_type= MYSQL_TYPE_STRING;

//bind[0].buffer_type = MYSQL_TYPE_LONG;

bind[0].buffer = pos;

//bind[0].buffer_type = MYSQL_TYPE_TINY;

bind[0].buffer_type = MYSQL_TYPE_BLOB;

bind[0].length= &length;

bind[0].is_null= 0;

/* Bind the buffers */

if (mysql_stmt_bind_param(stmt, bind))

{

fprintf(stderr, "\n param bind failed");

fprintf(stderr, "\n %s", mysql_stmt_error(stmt));

exit(0);

}

int rc =0;

/* Supply data in chunks to server */

if (mysql_stmt_send_long_data(stmt,0, pos, size))

{

fprintf(stderr, "\n send_long_data failed");

fprintf(stderr, "\n %s", mysql_stmt_error(stmt));

exit(0);

}

// pos += size;

/* Supply the next piece of data */

if (mysql_stmt_send_long_data(stmt,0, pos, size))

{

fprintf(stderr, "\n send_long_data failed");

fprintf(stderr, "\n %s", mysql_stmt_error(stmt));

exit(0);

}

/* Now, execute the query */

if (mysql_stmt_execute(stmt))

{

fprintf(stderr, "\n mysql_stmt_execute failed");

fprintf(stderr, "\n %s", mysql_stmt_error(stmt));

exit(0);

}

}

int main()

{

test();

//sleep(1);

return 0;

}

运行结果:

mysql longblob,Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)相关推荐

  1. mysql blob longblob_MYSQL教程Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)

    <MYSQL教程Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)>要点: 本文介绍了MYSQL教程Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理 ...

  2. mysql longblob_Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)

    在DBMS中线要创建数据库test,table bintest,data字段数据类型用LONGBLOB即可测试 //测试文件c:\\test.iso,你可以找任何一个文件修改为即可,我找的是一个exe ...

  3. mysql中long_在Mysql中用 LONGBLOB 类型存储二进制数据

    //需要设置为你自己的 //在DBMS中线要创建数据库test,table bintest,data字段数据类型用LONGBLOB即可测试 //测试文件c:\\test.iso,你可以找任何一个文件修 ...

  4. C++ MySQL存储二进制数据、存储照片

    版权声明:本文为CSDN博主「intfre」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/nibiru_ho ...

  5. mysql二进制大文件_Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)...

    <Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)>要点: 本文介绍了Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可 ...

  6. mysql存中文_mysql数据库存储中文数据的解决办法

    我在学习django中admin模块的时候,登录进入后台操作页面,输入中文数据,但保存之后全是乱码(全是"????????????"),然后就开始了解决问题之路. 1.首先百度搜索 ...

  7. wxWidgets随笔(9)-utf8~wxString存储二进制数据(4)

    使用wxString存储二进制数据 可以使用函数wxString::To8BitData和wxString::From8BitData来存储二进制数据(即使它包含空值). 注意,即使允许使用NUL字符 ...

  8. mongodb存储二进制数据的二种方式——binary bson或gridfs

    python 版本为2.7 mongodb版本2.6.5 使用mongodb存储文件,可以使用两种方式,一种是像存储普通数据那样,将文件转化为二进制数据存入mongodb,另一种使用gridfs,咱们 ...

  9. 用数组存储二进制数据

    有时候程序引用了多个资源文件,但是希望交付给用户的是单个可执行文件,那么就需要把资源文件打包到可执行文件中,一个简单的做法是这样的. 使用 xxd 工具将二进制文件转换成 unsigned char ...

最新文章

  1. 你会采取什么方法改进你的测试用例_软件测试面试时常考的几道面试题
  2. 你光明,这世界便不黑暗!---2016年.3.16演讲稿
  3. 游戏开发中 UI 是由谁来完成的?
  4. python中的doc_在windows 10上读取python中的.doc文件
  5. 【译文】领域模型的五个特征
  6. C#中break,continue,return,,goto,throw的区别(转)
  7. 小鹏汽车北京车展发布免费加电、电池租赁计划以及低空飞行汽车
  8. linux打if语句如何换行,如何在Linux中的列内换行
  9. HDU 3416 Marriage Match IV
  10. 插入数据并返回插入数据ID
  11. Battle Zone 战争地带
  12. hsql mybatis 表不存在_Mybatis-plus 查询数据库表时抛异常提示数据库表不存在
  13. 大小端转换定义结构体的技巧
  14. Region Proposal Network
  15. wi7计算机桌面删除,如何删除win7系统桌面IE图标|win7删除桌面IE图标的方法
  16. HTML音频视频、JS方法,以及插件使用教学
  17. PostgreSQL 分区表一点也不差
  18. JavaWeb个人博客项目:手把手教你实现博客后台系统之管理员管理模块5
  19. 如何解决租房烦恼?阿里工程师写了一套神奇的代码
  20. 人脸扫描建模_黑科技 | 3D人脸建模可以多简单?一张照片就搞定!

热门文章

  1. wireshark05-nfs协议unmount
  2. pip2和pip3在windows下共存问题
  3. 安全之路:Web渗透技术及实战案例解析(第2版)
  4. Adaptec by PMC携业界首款配备加密技术的产品进军HBA市场
  5. Jmeter 实战json提取
  6. 江西计算机竞赛有哪些,2019五大竞赛获奖名单全部公布!江西各高中竞赛实力排行榜新鲜出炉!...
  7. 扩展欧几里得定理详解和运用(就不信你看不懂!)
  8. python中时间格式的转换(time模块)
  9. docker Oracle11G/Oracle 19C安装
  10. GeoServer 学习(五)GeoServer安装与使用