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
'0x
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()
,但返回指向第一个参数的终止 null 的指针。