//需要设置为你自己的

//在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中long_在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 longblob,Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)

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

  4. Mysql中的varchar类型转换成int类型

    Mysql中的varchar类型转换成int类型 1.实战案例 1.1 student表结构 mysql> desc student; +----------+-------------+--- ...

  5. mysql中的生日应该是什么类型_MySQL中的定点数类型

    上一篇文章我们唠叨了浮点数,知道了浮点数存储小数是不精确的.本篇继续唠叨一下MySQL中的另一种存储小数的方式 -- 定点数.浮点数文章闪现: 什么, 0.3 - 0.2 ≠ 0.1 ? 什么鬼 定点 ...

  6. mysql中输入中文或英文 字符类型的设置

    以字段name为例 mysql中默认的是输入英文名,用的phpstudy,此时数据库(点击右键)--属性--字符集(latin1) 若要输入中文名'张三',此时将数据库中点击数据库(点击右键)--属性 ...

  7. mysql中change用法,mysql 中alter的用法以及一些步骤

    mysql 中alter的用法以及一些方法 在用到alter的时间,查到了这个文章,就copy下来了,详细进入下面链接: MySQL之alter语句用法总结 1:删除列 ALTER TABLE [表名 ...

  8. mysql中from unixtime,mysql中FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别

    摘要 腾兴网为您分享:mysql中FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别,作业大师,智慧大学,优化大师,先游等软件知识,以及流星蝴蝶剑,升学指导网软件,承德大宗,q ...

  9. mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)

    MySQL根据配置文件会限制Server接受的数据包大小.有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置: show VARIABLES ...

最新文章

  1. SSM实现个人博客系统
  2. ContactG,基于Spark IM组织联络人插件
  3. ElasticSearch 2.0以后的改动导致旧的资料和书籍需要订正的部分
  4. http协议 和 https
  5. 下载spotify音乐_如何在Spotify上播放更高质量的音乐
  6. VS2015 IIS Express 无法启动 解决办法(转)
  7. Java、JS、OC、Flutter的Base64编码和解码
  8. 微博发布公告 将开展财经违规内容专项整治行动
  9. SCPPO(十五):IIS配置文件节点加密
  10. 对JS中变量的浅微认识
  11. Linux 内存管理 | 连续分配方式 和 离散分配方式
  12. Android安卓原生实现微信登陆
  13. 保利威视视频云平台 新版本(Version 1.1.0) 上线通知
  14. JAVA算法:三角形周长(JAVA版本算法)
  15. awk 的内置变量 NF、NR、FNR、FS、OFS、RS、ORS
  16. python饼图添加颜色_Python中的五颜六色的饼状图!(二)
  17. C++ 后室·无限#1 游戏制作实录(RPG类型游戏)
  18. 降甘油三脂 的中药/中成药
  19. 【图解经典算法题】如何用一行代码解决约瑟夫环问题
  20. 青云算法面试题干货-开密码锁-LeetCode第752题

热门文章

  1. 对抗攻击笔记03:l0,l2,l∞范数
  2. STA series --- 3.Standard cell library(PART-II)
  3. ubuntu20.04安装pip2
  4. 维特根斯坦的表弟及其影响世界的三本书
  5. 49 Encode and Decode TinyURL
  6. 第一次前端培训(HTML基础)
  7. 关于树莓派SSH的安全警告以及SSH的登录问题。
  8. 机场航拍图像检测软件(Python+YOLOv5深度学习模型+清新界面)
  9. 一文读懂“数据分发服务DDS”(Data Distribution Service,RTPS,OMG)
  10. 现代A200硬启动方法