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 文字を含まない値の長さ。

エラー

なし。