関数リファレンス
   

関数

mysql_fetch_lengths()
テーブルの各フィールドサイズ を返す
   

書式

unsigned long *mysql_fetch_lengths(MYSQL_RES *result)

MYSQL_RES MYSQL RES構造体

戻り値

各フィールドのサイズ (終端 NUL 文字は含みません)を提供する unsigned long 整数の配列。エラーが発生した場合は NULL

エラー

mysql_fetch_lengths() は結果セットの現在のレコードについてだけ有効です。mysql_fetch_row() を呼び出す前、または結果の全てのレコードを取り出した後にこれを呼んだ場合、NULL が返されます。
   

機能

結果セット中の現在のレコードのフィールドの長さを返します。フィールドの値をコピーする場合、この長さ情報は最適化にも有用です。strlen() の呼び出しを回避できるためです。さらに、結果セットがバイナリデータを持つ場合は、データのサイズを特定するためにこの関数を使わなければなりません。なぜなら strlen() は 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]);
    }
}

Japanese MySQL Manualより抜粋