Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


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 文字を含まない、エンコードされた文字列の長さです。

戻り値は 0xvalue または X'value' 形式を使用して、SQL ステートメントに配置できます。ただし、戻り値には、0x または X'...' は含まれません。呼び出し元は、要求されたものをなんでも提供する必要があります。

char query[1000],*end;

end = strmov(query,"INSERT INTO test_table values(");
end = strmov(end,"0x");
end += mysql_hex_string(end,"What is this",12);
end = strmov(end,",0x");
end += mysql_hex_string(end,"binary data: \0\r\n",16);
*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 文字を含まない値の長さ。

エラー

なし。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.