unsigned long *mysql_fetch_lengths(MYSQL_RES
*result)
説明
結果セット内のカレントレコードのカラムの長さを返します。フィールド値をコピーしようとする場合、この関数を使用すれば
strlen()
を呼び出さなくても長さを取得できるので便利です。また、結果セットにバイナリデータが含まれている場合、strlen()
はヌル文字が含まれるフィールドの長さを正しく返さないので、この関数を使用してデータサイズを調べる必要があります。
空のカラムおよび NULL
値を含むカラムの長さは 0 です。この 2
つを区別する方法については、mysql_fetch_row()
の説明を参照してください。
戻り値
各カラムのサイズ(ヌル終端文字は数えない)を表す
unsigned long
整数の配列。エラーが発生した場合は
NULL
。
エラー
mysql_fetch_lengths()
は結果セットのカレントレコードでのみ有効です。mysql_fetch_row()
を呼び出す前または結果セットのすべてのレコードを取得した後で呼び出された場合は
NULL
を返します。
例
MYSQL_ROW row; unsigned long *lengths; unsigned int num_fields; unsigned int i; row = mysql_fetch_row(result); if (row) { num_fields = mysql_num_fields(result); lengths = mysql_fetch_lengths(result); for(i = 0; i < num_fields; i++) { printf("Column %u is %lu bytes in length.\n", i, lengths[i]); } }
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.