23.8.7.34 mysql_hex_string()
unsigned long mysql_hex_string(char *to, const char
*from, unsigned long length)
설명
이 함수는 SQL 문에서 사용할 수있는 유효한 SQL 문자열을 만드는 데 사용됩니다. 섹션 9.1.1 "문자열 리터럴" 을 참조하십시오.
from 에서 문자열은 각 문자가 2 자리 16 진수로 인코딩 된 16 진수 형식으로 인코딩됩니다. 결과는 to 에두고 종단의 NULL 바이트가 부가됩니다.
from 에 의해 지시되는 문자열은 length 바이트의 길이 여야합니다. to 버퍼를 적어도 length*2+1 바이트가되도록 할당해야합니다. mysql_hex_string() 가 리턴되면, to 의 내용은 NULL로 끝나는 문자열되어 있습니다. 반환 값은 종단의 NULL 문자가 포함 된 인코딩 된 문자열의 길이입니다.
반환 값은 0x 또는 valueX' 형식을 사용하여 SQL 문에 배치 할 수 있습니다. 다만, 반환 값은 value '0x 또는 X'...' 은 포함되지 않습니다. 호출자가 요청한 것을 뭐든지 제공해야합니다.
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 포인터를 반환합니다.
반환 값
to 놓인 종단의 NULL 문자가 포함 된 값의 길이.
오류
없음.