PDF (美国信纸) - 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 语句中。但是,返回值不包括 valueX'...' 或 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(),但会返回指向第一个参数的终止空字符的指针。