PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb
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
'0x
格式放置在 SQL 语句中。但是,返回值不包括 value
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()
,但会返回指向第一个参数的终止空字符的指针。