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
またはvalue
X'
フォーマットを使った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
の中に置かれた、ゼロで終わる文字を含まない値の長さ。
エラー
なし。