开发者社区> 问答> 正文

Mysql中如何插入VarBinary二进制类型

由于在数据表中定义了一个字段是varbinary,需要利用C API进行插入操作,但是试了N种方法均不行,下面列举一下我们使用过的方式:(bina为char数组,也即待插入的二进制数据,其中可能含有各种字符;)
1
种方式经常出现错误,是因为使用了字符串的格式化符%s,当作字符串进行插入,但是遇到bina中的0字符就认为结束,故该方式不行;
采用这种连接的方式进行插入,还是会遇到erro 1064 syntax error的提示。
1
请问大家有没有什么好的解决方案?

展开
收起
蛮大人123 2016-02-07 15:36:46 6526 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    把bina做一次编码,比如bin2hex

    #include <math.h>
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
     
    #define FirstDigit 48
     
    void BinToHex(char* BinData, char* HexData)
    {
       long int Number = 0;
       int BinLength = strlen(BinData);
     
       for(int i=0; i<BinLength; i++)
       {
          Number += ((BinData[BinLength - i - 1] - FirstDigit) * pow(2, i));
       }
     
       ltoa(Number, HexData, 16);
    }
     
    int main()
    {
       char* BinBuffer = "11110101";
       char HexBuffer[256];
     
       BinToHex(BinBuffer, HexBuffer);
       printf("Bin: %s\nHex: %s", BinBuffer, HexBuffer);
       getch();
       return 0;
    2019-07-17 18:39:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像