mysql插入图片

冯德佑
2023-12-01
#include <my_global.h>
#include <mysql.h>

int main(int argc, char **argv)
{
  MYSQL *conn;
  MYSQL_RES *result;
  MYSQL_ROW row;

  unsigned long *lengths;
  FILE *fp;

  conn = mysql_init(NULL);
 
  mysql_real_connect(conn, "172.27.233.8", "nmsAdmin", "ALTXsql-mysql", "tb_user_cfg", 0, NULL, 0);

  fp = fopen("image.jpg", "wb");

  mysql_query(conn, "select image from mails.tb_user_cfg where phoneNum='+8613021103077';");
 
  result = mysql_store_result(conn);

  row = mysql_fetch_row(result);
  lengths = mysql_fetch_lengths(result);

  fwrite(row[0], lengths[0], 1, fp);
  mysql_free_result(result);

  fclose(fp);
  mysql_close(conn);
}


BLOB介绍

    BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。BLOB是一

个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。根据Eric Raymond的

说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。但也有专家强调,这种处理大数据对象的方法是把双

刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB的典型例子。

mysql BLOB类型

    MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。
  MySQL的四种BLOB类型
  类型 大小(单位:字节)
  TinyBlob 最大 255
  Blob 最大 65K
  MediumBlob 最大 16M
  LongBlob 最大 4G

linux修改etc/my.cnf
    [mysqld]
    max_allowed_packet = 16M //不同于[mysqldump]下的max_allowed_packet
    
    
    


 类似资料: