unsigned long *mysql_fetch_lengths(MYSQL_RES
*result)
説明
それは結果セット内にある現在の列のカラムの長さを戻します。フィールド値をコピーすることを計画する場合、この長さ情報は、strlen()
の呼び出しを避けることができるので、最適化に有用です。以上に加え、結果セットにバイナリーデータが含まれている場合、strlen()はゼロの文字を含むフィールドに対して不正確な結果を戻すので、この機能を利用してデータのサイズを査定しなければ
なりません。
空のカラムのため、およびNULL
値を含むカラムのための長さはゼロです。これら2つのケースを区別する方法を調べるには、mysql_fetch_row()
の説明をご参照ください。
戻り値
(ゼロで終わる文字群を含まない)各カラムを代表する未サインの長い整数アレー)。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]); } }