この構造体は、1 つのデータベース接続へのハンドルを表す。ほとんどの MySQL 関数で使用される。
            この構造体は、レコードを返すクエリ(SELECT、SHOW、EXPLAIN、DESCRIBE)の結果を表す。このセクションでは、クエリから返された情報を結果セットと呼ぶ。
          
            1
            行のデータのタイプセーフな表現。現在は、バイト文字列の配列として実装されている(フィールドにはバイナリデータが格納される場合があり、そのようなデータでは内部的にヌルバイトが使用される可能性があるので、バイト文字列をヌル終端文字列として扱うことはできない)。レコードを取得するには、mysql_fetch_row()
            を呼び出す。
          
            この構造体には、フィールドの名前、型、サイズなど、フィールドに関する情報が格納される。メンバの詳細については、以下で説明する。
            各フィールドに対して
            mysql_fetch_field()
            を繰り返し呼び出すことによって、対応する
            MYSQL_FIELD
            構造体を取得できる。フィールド値はこの構造体の一部ではなく、MYSQL_ROW
            構造体に含まれる。
          
            MySQL
            フィールド一覧に対するオフセットの安全な型表現(mysql_field_seek()
            が使用)。オフセットはレコード内部でのフィールド番号であり、0
            から始まる。
          
            my_ulonglong
          
            レコードの数を表すための型であり、mysql_affected_rows()、mysql_num_rows()、および
            mysql_insert_id()
            で使用される。0 から
            1.84e19 までの範囲の値を表す。
          
            一部のシステムでは、my_ulonglong
            型の値を出力しようとしても、正常に出力されない。この型の値を出力するには、unsigned
            long に変換して、%lu
            フォーマットを使用する。以下に例を示す。
printf ("Number of rows: %lu\n", (unsigned long) mysql_num_rows(result));
        MYSQL_FIELD
        構造体のメンバを以下に示します。
      
            char * name
          
フィールドの名前。ヌル終端文字列。
            char * table
          
            このフィールドが計算結果データのフィールドでない場合、このフィールドが属するテーブルの名前。計算結果データのフィールドの場合、table
            の値は空文字列になる。
          
            char * def
          
            このフィールドのデフォルト値。ヌル終端文字列。mysql_list_fields()
            を使用するときだけ設定される。
          
            enum enum_field_types type
          
            フィールドの型。 type
            の値は次のいずれかになる。
          
| 型の値 | 型の説明 | 
| FIELD_TYPE_TINY | TINYINTフィールド | 
| FIELD_TYPE_SHORT | SMALLINTフィールド | 
| FIELD_TYPE_LONG | INTEGERフィールド | 
| FIELD_TYPE_INT24 | MEDIUMINTフィールド | 
| FIELD_TYPE_LONGLONG | BIGINTフィールド | 
| FIELD_TYPE_DECIMAL | DECIMALまたはNUMERICフィールド | 
| FIELD_TYPE_FLOAT | FLOATフィールド | 
| FIELD_TYPE_DOUBLE | DOUBLEまたはREALフィールド | 
| FIELD_TYPE_TIMESTAMP | TIMESTAMPフィールド | 
| FIELD_TYPE_DATE | DATEフィールド | 
| FIELD_TYPE_TIME | TIMEフィールド | 
| FIELD_TYPE_DATETIME | DATETIMEフィールド | 
| FIELD_TYPE_YEAR | YEARフィールド | 
| FIELD_TYPE_STRING | CHARフィールド | 
| FIELD_TYPE_VAR_STRING | VARCHARフィールド | 
| FIELD_TYPE_BLOB | BLOBまたはTEXTフィールド(max_lengthを使用して最大長を決定) | 
| FIELD_TYPE_SET | SETフィールド | 
| FIELD_TYPE_ENUM | ENUMフィールド | 
| FIELD_TYPE_NULL | NULL型フィールド | 
| FIELD_TYPE_CHAR | 廃止(代わりに FIELD_TYPE_TINYを使用すること) | 
            IS_NUM()
            マクロを使用すると、フィールドが数値型かどうかを調べることができる。type
            の値を IS_NUM()
            に渡すと、フィールドが数値型の場合は TRUE
            と評価される。
          
if (IS_NUM(field->type))
    printf("Field is numeric\n");
            unsigned int length
          
フィールドの幅。テーブル定義で指定された値に従う。
            unsigned int max_length
          
            結果セットのフィールドの最大幅(結果セットに実際に存在するレコードのフィールド値の最大長)。mysql_store_result()
            または mysql_list_fields()
            を使用した場合、この値はフィールドの最大長を表す。mysql_use_result()
            を使用した場合、この値は 0 になる。
          
            unsigned int flags
          
            フィールドのさまざまな状態を表すビットフラグ。flags
            値は、0 または以下のビットが 1
            つ以上設定された値になる。
          
| フラグの値 | フラグの説明 | 
| NOT_NULL_FLAG | NULLを設定できないフィールド | 
| PRI_KEY_FLAG | 主キーの一部を構成するフィールド | 
| UNIQUE_KEY_FLAG | 一意なキーの一部を構成するフィールド | 
| MULTIPLE_KEY_FLAG | 一意でないキーの一部を構成するフィールド | 
| UNSIGNED_FLAG | UNSIGNED属性を持つフィールド | 
| ZEROFILL_FLAG | ZEROFILL属性を持つフィールド | 
| BINARY_FLAG | BINARY属性を持つフィールド | 
| AUTO_INCREMENT_FLAG | AUTO_INCREMENT属性を持つフィールド | 
| ENUM_FLAG | ENUM型のフィールド(廃止) | 
| SET_FLAG | SET型のフィールド(廃止) | 
| BLOB_FLAG | BLOB型またはTEXT型のフィールド(廃止) | 
| TIMESTAMP_FLAG | TIMESTAMP型のフィールド(廃止) | 
            BLOB_FLAG、ENUM_FLAG、SET_FLAG、および
            TIMESTAMP_FLAG
            の各フラグは、フィールドの属性ではなく型を示しているので、廃止されている。代わりに、field->type
            を
            FIELD_TYPE_BLOB、FIELD_TYPE_ENUM、FIELD_TYPE_SET、または
            FIELD_TYPE_TIMESTAMP
            と比較する方が望ましい。
          
            次に、flags
            値の典型的な使用例を示す。
          
if (field->flags & NOT_NULL_FLAG)
    printf("Field can't be null\n");
            以下のマクロを使用すると、flags
            値を調べてブール値で結果を得ることができる。
          
| フラグの状態 | 説明 | 
| IS_NOT_NULL(flags) | このフィールドが NOT NULLとして定義されている場合は True。 | 
| IS_PRI_KEY(flags) | このフィールドが主キーの場合は True。 | 
| IS_BLOB(flags) | このフィールドが BLOBまたはTEXTの場合は True
                    (廃止。代わりにfield->typeによる比較を推奨)。 | 
            unsigned int decimals
          
数値フィールドの小数部桁数。
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.

