您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页在Mysql中用LONGBLOB类型存储二进制数据

在Mysql中用LONGBLOB类型存储二进制数据

来源:二三娱乐
在Mysql中⽤LONGBLOB类型存储⼆进制数据

//需要设置为你⾃⼰的

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

//测试⽂件c:\\\est.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:\\\est.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\链接服务器 {

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\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\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\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\exit(0); }

/* Now, execute the query */ if (mysql_stmt_execute(stmt)) {

fprintf(stderr, \"\\n mysql_stmt_execute failed\"); fprintf(stderr, \"\\n %s\exit(0); } }

int main() {

test(); //sleep(1); return 0; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务