27.7.6.35 mysql_hex_string()
unsigned long mysql_hex_string(char *to, const char *from, unsigned long length)
Description
此函数创建一个合法的 SQL 字符串以用于 SQL 语句。参见第 9.1.1 节“字符串 Literals”。
from
参数中的字符串以十六进制格式编码,每个字符编码为两个十六进制数字。结果放置在to
参数中,后跟一个终止的空字节。
from
指向的字符串的长度必须为length
个字节。您必须将to
缓冲区分配为至少length*2+1
字节长。 mysql_hex_string()返回时,to
的内容是一个以空值结尾的字符串。返回值是编码字符串的长度,不包括终止空字节。
可以使用X'value'
或0xvalue
格式将返回值放入 SQL 语句中。但是,返回值不包含X'...'
或0x
。呼叫者必须提供所需的任何一个。
Example
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 的指针。
Return Values
放在to
中的编码字符串的长度,不包括终止空字符。
Errors
None.