Documentation Home

5.4.34 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是一个以空字符结尾的字符串。返回值是编码字符串的长度,不包括终止空字节。

可以使用或 格式 将返回值放入 SQL 语句中。但是,返回值不包括 or 。调用者必须提供所需的任何一个。 X'value'0xvalueX'...'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(),但返回指向第一个参数的终止 null 的指针。

返回值

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

错误

没有任何。