文档首页
MySQL 8.4 C API 开发人员指南
下载本手册
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


5.4.39 mysql_hex_string()

unsigned long
mysql_hex_string(char *to,
                 const char *from,
                 unsigned long length)

描述

此函数创建用于 SQL 语句的合法 SQL 字符串。请参阅 字符串文字.

来自 from 参数的字符串以十六进制格式编码,每个字符编码为两个十六进制数字。结果将放置在 to 参数中,后面紧跟一个终止空字节。

from 指向的字符串必须是 length 字节长。您必须将 to 缓冲区分配为至少 length*2+1 字节长。当 mysql_hex_string() 返回时,to 的内容将是一个以空字符结尾的字符串。返回值是编码字符串的长度,不包括终止空字节。

返回值可以使用 X'value'0xvalue 格式放置在 SQL 语句中。但是,返回值不包括 X'...'0x。调用者必须提供其中任何一个。

示例

char query[1000],*end;

end = strmov(query,"INSERT INTO test_table values(");
end = strmov(end,"X'");
end += mysql_hex_string(end,"What is this",12);
end = strmov(end,"',X'");
end += mysql_hex_string(end,"binary data: \0\r\n",16);
end = strmov(end,"')");

if (mysql_real_query(&mysql,query,(unsigned int) (end - query)))
{
   fprintf(stderr, "Failed to insert row, Error: %s\n",
           mysql_error(&mysql));
}

示例中使用的 strmov() 函数包含在 libmysqlclient 库中,它的作用类似于 strcpy(),但会返回指向第一个参数的终止空字符的指针。

返回值

放置在 to 中的编码字符串的长度,不包括终止空字符。

错误

无。