unsigned long mysql_hex_string(char *to, const char
*from, unsigned long length)
説明
この機能は、SQLステートメントの中に使うことができる法定SQLストリングを作るために使われます。項8.1.1. 「文字列」を参照してください。
from中のストリングは、2つの16進桁数としてコード化された各文字と一緒に、16進法のフォーマットにコード化されます。結果はtoの中に置かれ、その最後の部位にゼロバイトが付加されます。
fromによって指し示されたストリングは、lengthバイトの長さのものでなければなりません。toバッファーに長さが少なくともlength*2+1バイトを割り当てなければなりません。mysql_hex_string()が戻すとき、toの中身はゼロで終わるストリングです。戻り値は、ゼロで終わる文字を含まないコード化されたストリングの長さに等しい大きさを持っています。
戻り値は、0xまたはvalueX'フォーマットを使ったSQLステートメントの中に置くことができます。しかし、戻り値には、value'0xまたはX'...'は含まれていません。呼び出し人は、どれを望まれても供給しなくてはなりません。
例
char query[1000],*end;
end = strmov(query,"INSERT INTO test_table values(");
end = strmov(end,"0x");
end += mysql_hex_string(end,"What's this",11);
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()機能は、mysqlclientライブラリの中に含まれています。当該機能はstrcpy()と同じような働きをしますが、ポインターを最初のパラメータの終わりのゼロに戻します。
戻り値
toの中に置かれた、ゼロで終わる文字を含まない値の長さ。
エラー
なし。
