图片 二进制 存入 mysql
来源:互联网 发布:同城交友app源码 编辑:程序博客网 时间:2024/05/16 19:08
经过一天的努力,终于实现了把图片转换成二进制存入mysql了!
兴奋!
代码!
#include <stdio.h>
#include "/usr/local/mysql/include/mysql.h"
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#define host "192.168.1.214" //mysql server
#define username "zyz"
#define password "12345678"
#define database "gps2008"
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;
}
int main(int argc, char *argv[])
{
char *filename;
off_t size;
MYSQL *conn;
MYSQL_RES *res_set;
MYSQL_ROW row;
MYSQL_FIELD *field;
int i, flag;
char *sql;
FILE *fp;
char *buf;
int n=0;
char *end;
unsigned long *length;
filename = "/home/zyz1/la213.bmp";
if ((get_file_size(filename, &size)) == -1) {
perror("get file size" );
exit(1);
}
if ((buf = (char *)malloc(sizeof(char)*(size+1))) == NULL) {
perror("malloc buf" );
exit(1);
}
if ((fp = fopen(filename, "rb" )) == NULL) {
perror("fopen file" );
exit(1);
}
if ((n = fread(buf, 1, size, fp)) < 0) { //n=*size
perror("fread file" );
exit(1);
}
sql = (char *)malloc(sizeof(char)*n*2+256); //2n+1+strlen(other sql)
if (sql == NULL) {
perror("malloc sql" );
exit(1);
}
conn = mysql_init(NULL);
if (conn == NULL) {
printf("init mysql, %s/n", mysql_error(conn));
exit(1);
}
if ((mysql_real_connect(conn, host, username, password, database, 0, NULL, 0)) == NULL) {
printf("connect mysql, %s/n", mysql_error(conn));
exit(1);
}
strcpy(sql, "insert into message(message) values(");
end = sql;
end += strlen(sql); //point sql tail
//convert NUL(ASCII 0)、'/n'、'/r'、'/'’、'''、'"'、Control-Z and so on
*end++ = '/'';
end += mysql_real_escape_string(conn, end, buf, n);
*end++ = '/'';
*end++ = ')';
flag = mysql_real_query(conn, sql, (unsigned int)(end-sql));
if (flag != 0) {
printf("insert failed, %s/n", mysql_error(conn));
exit(1);
}
if ((mysql_real_query(conn, "select message from message where id=5", 31)) != 0) {
printf("select failed, %s/n", mysql_error(conn));
exit(1);
}
res_set = mysql_store_result(conn);
fclose(fp);
fp = NULL;
fp = fopen("foo.bk", "wb" );
while ((row = mysql_fetch_row(res_set)) != NULL) {
length = mysql_fetch_lengths(res_set);
for (i=0; i<mysql_num_fields(res_set); i++) {
fwrite(row[0], 1, length[0], fp);
}
}
fclose(fp);
mysql_close(conn);
free(sql);
sql = NULL;
return 0;
}
- 图片 二进制 存入 mysql
- 图片以二进制存入MYSQL
- 图片二进制存入数据库
- python将图片以二进制存入mysql并取出来
- 将图片存入mysql
- visual c++将图片以二进制流的形式存入到mysql中
- 使用JDBC连接Mysql数据库存入二进制图片并实现读取在PHP中打开展示。
- 使用JDBC连接Mysql数据库存入二进制图片并实现读取在PHP中打开展示
- 将图片以二进制流存入数据库
- 字符串转换成二进制,存入mysql
- Hibernate将文件二进制存入mysql
- 把图片存入mysql数据库
- PHP将图片存入MYSQL
- 在Mysql中存入图片
- 利用Hibernate往SqlServer里存入图片或二进制数据
- 利用Hibernate往SqlServer里存入图片或二进制数据
- 将图片以二进制形式存入数据库中
- 将图片以二进制代码形式存入数据库
- 数据表结构的张秋范式命名规则
- Jboss as 基本设置
- flex知识点6
- 数模转换器静态特性参数
- PKU1631Bridging signals(最长不降子序列)
- 图片 二进制 存入 mysql
- 多条件组合查询的解决方案
- JavaScript读取servlet发出xml信息
- POJ 1700 令人崩溃的边界
- Delphi ActiveX Form的使用实例
- 最好解决方案
- php程序提速原理分析
- JAVA6,请使用字符串加操作。
- 【我所認知的BIOS】—>IDE detect