mysql longblob,Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)
在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 类型存储二进制数据 (修改+调试+整理)相关推荐
- mysql blob longblob_MYSQL教程Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)
<MYSQL教程Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)>要点: 本文介绍了MYSQL教程Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理 ...
- mysql longblob_Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)
在DBMS中线要创建数据库test,table bintest,data字段数据类型用LONGBLOB即可测试 //测试文件c:\\test.iso,你可以找任何一个文件修改为即可,我找的是一个exe ...
- mysql中long_在Mysql中用 LONGBLOB 类型存储二进制数据
//需要设置为你自己的 //在DBMS中线要创建数据库test,table bintest,data字段数据类型用LONGBLOB即可测试 //测试文件c:\\test.iso,你可以找任何一个文件修 ...
- C++ MySQL存储二进制数据、存储照片
版权声明:本文为CSDN博主「intfre」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/nibiru_ho ...
- mysql二进制大文件_Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)...
<Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)>要点: 本文介绍了Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可 ...
- mysql存中文_mysql数据库存储中文数据的解决办法
我在学习django中admin模块的时候,登录进入后台操作页面,输入中文数据,但保存之后全是乱码(全是"????????????"),然后就开始了解决问题之路. 1.首先百度搜索 ...
- wxWidgets随笔(9)-utf8~wxString存储二进制数据(4)
使用wxString存储二进制数据 可以使用函数wxString::To8BitData和wxString::From8BitData来存储二进制数据(即使它包含空值). 注意,即使允许使用NUL字符 ...
- mongodb存储二进制数据的二种方式——binary bson或gridfs
python 版本为2.7 mongodb版本2.6.5 使用mongodb存储文件,可以使用两种方式,一种是像存储普通数据那样,将文件转化为二进制数据存入mongodb,另一种使用gridfs,咱们 ...
- 用数组存储二进制数据
有时候程序引用了多个资源文件,但是希望交付给用户的是单个可执行文件,那么就需要把资源文件打包到可执行文件中,一个简单的做法是这样的. 使用 xxd 工具将二进制文件转换成 unsigned char ...
最新文章
- 你会采取什么方法改进你的测试用例_软件测试面试时常考的几道面试题
- 你光明,这世界便不黑暗!---2016年.3.16演讲稿
- 游戏开发中 UI 是由谁来完成的?
- python中的doc_在windows 10上读取python中的.doc文件
- 【译文】领域模型的五个特征
- C#中break,continue,return,,goto,throw的区别(转)
- 小鹏汽车北京车展发布免费加电、电池租赁计划以及低空飞行汽车
- linux打if语句如何换行,如何在Linux中的列内换行
- HDU 3416 Marriage Match IV
- 插入数据并返回插入数据ID
- Battle Zone 战争地带
- hsql mybatis 表不存在_Mybatis-plus 查询数据库表时抛异常提示数据库表不存在
- 大小端转换定义结构体的技巧
- Region Proposal Network
- wi7计算机桌面删除,如何删除win7系统桌面IE图标|win7删除桌面IE图标的方法
- HTML音频视频、JS方法,以及插件使用教学
- PostgreSQL 分区表一点也不差
- JavaWeb个人博客项目:手把手教你实现博客后台系统之管理员管理模块5
- 如何解决租房烦恼?阿里工程师写了一套神奇的代码
- 人脸扫描建模_黑科技 | 3D人脸建模可以多简单?一张照片就搞定!
热门文章
- wireshark05-nfs协议unmount
- pip2和pip3在windows下共存问题
- 安全之路:Web渗透技术及实战案例解析(第2版)
- Adaptec by PMC携业界首款配备加密技术的产品进军HBA市场
- Jmeter 实战json提取
- 江西计算机竞赛有哪些,2019五大竞赛获奖名单全部公布!江西各高中竞赛实力排行榜新鲜出炉!...
- 扩展欧几里得定理详解和运用(就不信你看不懂!)
- python中时间格式的转换(time模块)
- docker Oracle11G/Oracle 19C安装
- GeoServer 学习(五)GeoServer安装与使用