mysql中long_在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中long_在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 longblob,Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)
在DBMS中线要创建数据库test,table bintest,data字段数据类型用LONGBLOB即可测试 //测试文件c:\\test.iso,你可以找任何一个文件修改为即可,我找的是一个exe ...
- Mysql中的varchar类型转换成int类型
Mysql中的varchar类型转换成int类型 1.实战案例 1.1 student表结构 mysql> desc student; +----------+-------------+--- ...
- mysql中的生日应该是什么类型_MySQL中的定点数类型
上一篇文章我们唠叨了浮点数,知道了浮点数存储小数是不精确的.本篇继续唠叨一下MySQL中的另一种存储小数的方式 -- 定点数.浮点数文章闪现: 什么, 0.3 - 0.2 ≠ 0.1 ? 什么鬼 定点 ...
- mysql中输入中文或英文 字符类型的设置
以字段name为例 mysql中默认的是输入英文名,用的phpstudy,此时数据库(点击右键)--属性--字符集(latin1) 若要输入中文名'张三',此时将数据库中点击数据库(点击右键)--属性 ...
- mysql中change用法,mysql 中alter的用法以及一些步骤
mysql 中alter的用法以及一些方法 在用到alter的时间,查到了这个文章,就copy下来了,详细进入下面链接: MySQL之alter语句用法总结 1:删除列 ALTER TABLE [表名 ...
- mysql中from unixtime,mysql中FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别
摘要 腾兴网为您分享:mysql中FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别,作业大师,智慧大学,优化大师,先游等软件知识,以及流星蝴蝶剑,升学指导网软件,承德大宗,q ...
- mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)
MySQL根据配置文件会限制Server接受的数据包大小.有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置: show VARIABLES ...
最新文章
- SSM实现个人博客系统
- ContactG,基于Spark IM组织联络人插件
- ElasticSearch 2.0以后的改动导致旧的资料和书籍需要订正的部分
- http协议 和 https
- 下载spotify音乐_如何在Spotify上播放更高质量的音乐
- VS2015 IIS Express 无法启动 解决办法(转)
- Java、JS、OC、Flutter的Base64编码和解码
- 微博发布公告 将开展财经违规内容专项整治行动
- SCPPO(十五):IIS配置文件节点加密
- 对JS中变量的浅微认识
- Linux 内存管理 | 连续分配方式 和 离散分配方式
- Android安卓原生实现微信登陆
- 保利威视视频云平台 新版本(Version 1.1.0) 上线通知
- JAVA算法:三角形周长(JAVA版本算法)
- awk 的内置变量 NF、NR、FNR、FS、OFS、RS、ORS
- python饼图添加颜色_Python中的五颜六色的饼状图!(二)
- C++ 后室·无限#1 游戏制作实录(RPG类型游戏)
- 降甘油三脂 的中药/中成药
- 【图解经典算法题】如何用一行代码解决约瑟夫环问题
- 青云算法面试题干货-开密码锁-LeetCode第752题
热门文章
- 对抗攻击笔记03:l0,l2,l∞范数
- STA series --- 3.Standard cell library(PART-II)
- ubuntu20.04安装pip2
- 维特根斯坦的表弟及其影响世界的三本书
- 49 Encode and Decode TinyURL
- 第一次前端培训(HTML基础)
- 关于树莓派SSH的安全警告以及SSH的登录问题。
- 机场航拍图像检测软件(Python+YOLOv5深度学习模型+清新界面)
- 一文读懂“数据分发服务DDS”(Data Distribution Service,RTPS,OMG)
- 现代A200硬启动方法