mysql blob longblob_MYSQL教程Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)
《MYSQL教程Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)》要点:
本文介绍了MYSQL教程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,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,mysql_stmt_error(stmt));
exit(0);
}
int rc =0;
/* Supply data in chunks to server */
if (mysql_stmt_send_long_data(stmt,pos,size))
{
fprintf(stderr,"\n send_long_data failed");
fprintf(stderr,mysql_stmt_error(stmt));
exit(0);
}
// pos += size;
/* Supply the next piece of data */
if (mysql_stmt_send_long_data(stmt,mysql_stmt_error(stmt));
exit(0);
}
/* Now,execute the query */
if (mysql_stmt_execute(stmt))
{
fprintf(stderr,"\n mysql_stmt_execute failed");
fprintf(stderr,mysql_stmt_error(stmt));
exit(0);
}
}
int main()
{
test();
//sleep(1);
return 0;
}
运行结果:
mysql blob longblob_MYSQL教程Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)相关推荐
- mysql longblob_Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)
在DBMS中线要创建数据库test,table bintest,data字段数据类型用LONGBLOB即可测试 //测试文件c:\\test.iso,你可以找任何一个文件修改为即可,我找的是一个exe ...
- 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,你可以找任何一个文件修 ...
- mysql二进制大文件_Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)...
<Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)>要点: 本文介绍了Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可 ...
- 【MySQL】黑马教程MySQL数据库 MySQL基础(一)
文章目录 [MySQL]黑马教程MySQL数据库 | MySQL基础(一) MySQL启动 MySQL客户端连接 MySQL数据模型 SQL SQL分类 DDL 表操作-查询 表操作-创建 表操作-数 ...
- wxWidgets随笔(9)-utf8~wxString存储二进制数据(4)
使用wxString存储二进制数据 可以使用函数wxString::To8BitData和wxString::From8BitData来存储二进制数据(即使它包含空值). 注意,即使允许使用NUL字符 ...
- mysql double 20_MySQL教程20-小数类型
MySQL 中使用浮点数和定点数来表示小数. 浮点类型有两种,分别是单精度浮点数(FLOAT)和双精度浮点数(DOUBLE):定点类型只有一种,就是 DECIMAL. 浮点类型和定点类型都可以用(M, ...
- C++ MySQL存储二进制数据、存储照片
版权声明:本文为CSDN博主「intfre」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/nibiru_ho ...
- hibernate mysql longblob_使用hibernate 插入mysql blob 字段 最大能插入多大的数据
mysql 大对象存取: 类型一般应该用mediumblod, blob只能存2的16次方个byte, mediumblod是24次方, 一般来说够用了.longblob是32次方有些大. MYSQL ...
最新文章
- 关于比特币现金升级问题讨论不断升温
- CSS中zoom和scale的区别
- spark和python的关系_spark submit和pyspark有什么区别?
- 脑电分析系列 | eeglab汇总
- linux字符设备开发
- Windows下给SourceTree配置外部比较工具BeyondCompare
- 如何解决在Windows Server 2008 R2 上安装证书服务重启后出现 CertificationAuthority 91错误事件...
- 移动机器人构型对比分析
- 关于hibernate的缓存使用
- 一个计算机爱好者的不完整回忆(三十一)我的拼音输入法
- java执行bat代码
- 计算机中的数据(原码,反码,补码)
- php转html为pdf后部分图片无法显示
- ubuntu安装配置NFS
- python中def main是什么意思_Python main()函数解析
- WkwebView调节字体大小获取高度
- c语言汇编输出字符串长度,汇编语言输入一些字符计算其长度
- 关于在线课程及软件开发学习--给真正希望学习的朋友
- 网际协议IP---ARP协议
- Ansys随机振动理论