用二进制保存图片,数据类型用LONGBLOB

解决方案 »

  1.   

    mysql的接口函数都是char*的,不支持byte
      

  2.   

    就在这里有个贴子,是说这个的,你去看看。用LOAD_FILE()存,读取没说,不过可以自己试。
      

  3.   

    我都发过一次了
    int load_image(MYSQL *conn, int id, FILE *f)
    {
    char query[1024*100], buf[1024*10], *p;
    unsigned int from_len;
    int status;sprintf(query,"insert into image values(%d,'",id);
    p=query+strlen(query);
    while(from_len=fread(buf,1,sizeof(buf,f))>0)
    {
    /*don't overrun end of query buffer!*/
    if (p +(2*from_len) + 3 > query + sizeof (query))
    {
    print_error(NULL, "image too big");
    return(1);
    }
    p += mysql_escape_string (p, buf, from_len);
    }
    (void) strcpy(p, "')");
    status = mysql_query (conn, query);
    return (status);
    }//取出文件比较简单
    直接根据字段长度,用取到memcpy就可以了