zoukankan      html  css  js  c++  java
  • MYSQL C API : mysql_real_escape_string 二进制数据存储

     1 #include <iostream>
     2 #include <string>
     3 
     4 #include <string.h>
     5 
     6 #include <mysql.h>
     7 
     8 int main()
     9 {
    10     // 初始化MYSQL 实例
    11     MYSQL *ms_conn = mysql_init(NULL);
    12     if (ms_conn == NULL)
    13     {
    14         std::cout << "mysql init failed." << std::endl;
    15         return 0;
    16     }
    17     std::cout << "mysql init successful." << std::endl;
    18 
    19     // 连接到MYSQL 服务器
    20     MYSQL *ms_ret = mysql_real_connect(ms_conn, "localhost", "root", 
    21             "123456sx", "temp", 0, NULL, 0);
    22     if (ms_ret == NULL)
    23     {
    24         std::cout << "mysql connect failed." << std::endl;
    25         std::cout << mysql_error(ms_conn) << std::endl;
    26         mysql_close(ms_conn), ms_conn = NULL;
    27         return 0;
    28     }
    29     std::cout << "mysql connect successful." << std::endl;
    30 
    31     // 待存到MYSQL 的二进制数据
    32     char bin_data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    33 
    34     // 转义二进制数为一条字符串数据,
    35     // 同时mysql_real_escape_string() 生成的字符串会自动添加尾零
    36     char *escape_bin = new char[sizeof(bin_data) * 2 + 1];
    37     mysql_real_escape_string(ms_conn, 
    38             escape_bin, bin_data, sizeof(bin_data));
    39 
    40     // 生成SQL 语句
    41     std::string str_sql = "";
    42     str_sql += "INSERT INTO tb_bin_data(bin_data) VALUES('";
    43     str_sql += escape_bin;
    44     str_sql += "')";
    45 
    46     delete [] escape_bin, escape_bin = NULL;
    47 
    48     int res = 0;
    49     res = mysql_real_query(ms_conn, str_sql.c_str(), 
    50             str_sql.size());
    51     if (res != 0)
    52     {
    53         std::cout << "Error: query failed. " 
    54             << mysql_error(ms_conn) << std::endl;
    55     }
    56     else
    57     {
    58         std::cout << "Info: query successful." << std::endl;
    59     }
    60 
    61     // 释放资源
    62     mysql_close(ms_conn), ms_conn = NULL;
    63     return 0;
    64 }
  • 相关阅读:
    动态加载并执行Win32可执行程序
    二维码登录
    深度神经网络实现图像理解的原理
    NET Core Docker部署
    EventStore的设计思路
    NET Core,Ubuntu运行
    Tensorflow 神经网络
    System.Reflection.Emit学习
    泛型 "new的性能"
    蚁群算法
  • 原文地址:https://www.cnblogs.com/suyunhong/p/4791918.html
Copyright © 2011-2022 走看看