Diese Struktur ist ein Handle für eine einzelne
            Datenbankverbindung. Sie wird für fast alle
            MySQL-Funktionen benutzt. Bitte versuchen Sie nicht, eine
            Kopie einer MYSQL-Struktur anzulegen. Es
            ist nicht garantiert, dass eine solche Kopie benutzbar ist.
          
            Diese Struktur stellt das Ergebnis einer Anfrage dar, die
            Zeilen liefert (SELECT,
            SHOW, DESCRIBE,
            EXPLAIN). Die Rückgabedaten aus der
            Anfrage wird im weiteren Verlauf dieses Abschnitts als
            Ergebnismenge bezeichnet.
          
            Eine typsichere Darstellung einer Datenzeile. Sie ist
            zurzeit als Array gezählter Byte-Strings implementiert.
            (Diese dürfen nicht als auf null endende Strings behandelt
            werden, wenn die Feldwerte Binärdaten enthalten könnten,
            da solche Werte intern Nullbytes enthalten können.) Die
            Zeilen werden mit mysql_fetch_row()
            abgerufen.
          
            Diese Struktur enthält Informationen über ein Feld, wie
            beispielsweise seinen Namen, seinen Typ und seine Größe.
            Ihre Bestandteile werden hier genauer erklärt. Die
            MYSQL_FIELD-Strukturen von Feldern
            erhalten Sie, indem Sie wiederholt
            mysql_fetch_field() aufrufen. Die Werte
            der Felder sind nicht Teil dieser Struktur, sondern in einer
            MYSQL_ROW-Struktur enthalten.
          
            Dies ist eine typsichere Darstellung eines Offsets in einer
            MySQL-Feldliste. (Wird von
            mysql_field_seek() benutzt.) Offsets sind
            Feldnummern innerhalb einer Zeile. Sie werden beginnend mit
            null gezählt.
          
            Dieser Typ wird für die Anzahl der Zeilen und für
            mysql_affected_rows(),
            mysql_num_rows() und
            mysql_insert_id() genutzt. Er hat einen
            Wertebereich von 0 bis
            1.84e19.
          
            Auf manchen Systemen können Werte vom Typ
            my_ulonglong nicht ausgegeben werden. In
            einem solchen Fall konvertieren Sie diesen in einen
            unsigned long und verwenden das
            Ausgabeformat %lu. Beispiel:
          
printf ("Number of rows: %lu\n", (unsigned long) mysql_num_rows(result));
        Die MYSQL_FIELD-Struktur hat folgende
        Bestandteile:
      
            char * name
          
            Der Name des Felds als auf null endender String. Wenn dem
            Feld mit einer AS-Klausel ein Aliasname
            gegeben wurde, ist der Wert von name der
            Alias.
          
            char * org_name
          
Der Name des Felds als auf null endender String. Aliasnamen werden ignoriert.
            char * table
          
            Der Name der Tabelle, die dieses Feld enthält, wenn es
            nicht ein berechnetes Feld ist. Für berechnete Felder ist
            der table-Wert ein leerer String. Wenn
            der Tabelle mit einer AS-Klausel ein
            Aliasname gegeben wurde, ist der Wert von
            name der Alias.
          
            char * org_table
          
Der Name der Tabelle als auf null endender String. Aliasnamen werden ignoriert.
            char * db
          
            Der Name der Datenbank, aus der das Feld stammt, als auf
            null endender String. Ist das Feld ein berechnetes Feld, ist
            db ein leerer String.
          
            char * catalog
          
            Der Katalogname. Dieser Wert ist immer
            "def".
          
            char * def
          
            Der Standardwert dieses Felds als auf null endender String.
            Wird nur gesetzt, wenn Sie
            mysql_list_fields() verwenden.
          
            unsigned long length
          
Die Feldbreite gemäß Tabellendefinition.
            unsigned long max_length
          
            Die maximale Breite des Felds für die Ergebnismenge (die
            Länge des längsten Feldwerts der Zeilen, die sich
            tatsächlich gerade in der Ergebnismenge befinden). Wenn Sie
            mysql_store_result() oder
            mysql_list_fields() benutzen, enthält
            dieser Wert die Höchstlänge für das Feld. Wenn Sie
            mysql_use_result() aufrufen, ist der Wert
            dieser Variablen null.
          
            unsigned int name_length
          
            Die Länge von name.
          
            unsigned int org_name_length
          
            Die Länge von org_name.
          
            unsigned int table_length
          
            Die Länge von table.
          
            unsigned int org_table_length
          
            Die Länge von org_table.
          
            unsigned int db_length
          
            Die Länge von db.
          
            unsigned int catalog_length
          
            Die Länge von catalog.
          
            unsigned int def_length
          
            Die Länge von def.
          
            unsigned int flags
          
            Verschiedene Bit-Flags für das Feld. Im Wert von
            flags können null oder mehr der
            folgenden Bits gesetzt sein:
          
| Flag-Wert | Flag-Beschreibung | 
| NOT_NULL_FLAG | Feld kann nicht NULLsein | 
| PRI_KEY_FLAG | Feld ist Teil eines Primärschlüssels | 
| UNIQUE_KEY_FLAG | Feld ist Teil eines eindeutigen Schlüssels | 
| MULTIPLE_KEY_FLAG | Feld ist Teil eines nichteindeutigen Schlüssels | 
| UNSIGNED_FLAG | Feld hat das Attribut UNSIGNED | 
| ZEROFILL_FLAG | Feld hat das Attribut ZEROFILL | 
| BINARY_FLAG | Feld hat das Attribut BINARY | 
| AUTO_INCREMENT_FLAG | Feld hat das Attribut AUTO_INCREMENT | 
| ENUM_FLAG | Feld ist eine ENUM(veraltet) | 
| SET_FLAG | Feld ist ein SET(veraltet) | 
| BLOB_FLAG | Feld ist ein BLOBoderTEXT(veraltet) | 
| TIMESTAMP_FLAG | Feld ist ein TIMESTAMP(veraltet) | 
            Die Flags BLOB_FLAG,
            ENUM_FLAG, SET_FLAG,
            und TIMESTAMP_FLAG sind veraltet, da sie
            keinen Attribut-, sondern einen Feldtyp angeben. Es ist
            besser, den field->type mit
            MYSQL_TYPE_BLOB,
            MYSQL_TYPE_ENUM,
            MYSQL_TYPE_SET oder
            MYSQL_TYPE_TIMESTAMP zu vergleichen.
          
            Das folgende Beispiel zeigt eine typische Verwendung des
            flags-Werts:
          
if (field->flags & NOT_NULL_FLAG)
    printf("Field can't be null\n");
            Mit den folgenden Makros können Sie den booleschen Status
            des flags-Werts nachschauen:
          
| Flag-Status | Beschreibung | 
| IS_NOT_NULL(flags) | Ist wahr, wenn dieses Feld als NOT NULLdefiniert ist | 
| IS_PRI_KEY(flags) | Ist wahr, wenn dieses Feld ein Primärschlüssel ist | 
| IS_BLOB(flags) | Ist wahr, wenn dieses Feld ein BLOBoderTEXTist (veraltet; bitte testen
                    Sie stattdessenfield->type) | 
            unsigned int decimals
          
Die Anzahl der Dezimalstellen für numerische Felder.
            unsigned int charset_nr
          
Die Nummer des Zeichensatzes für das Feld.
            enum enum_field_types type
          
            Der Typ des Felds. Der type-Wert kann
            eines der MYSQL_TYPE_-Symbole aus der
            folgenden Tabelle sein.
          
| Typwert | Typbeschreibung | 
| MYSQL_TYPE_TINY | TINYINT-Feld | 
| MYSQL_TYPE_SHORT | SMALLINT-Feld | 
| MYSQL_TYPE_LONG | INTEGER-Feld | 
| MYSQL_TYPE_INT24 | MEDIUMINT-Feld | 
| MYSQL_TYPE_LONGLONG | BIGINT-Feld | 
| MYSQL_TYPE_DECIMAL | DECIMAL- oderNUMERIC-Feld | 
| MYSQL_TYPE_NEWDECIMAL | DECIMAL- oderNUMERIC-Typ für
                    Präzisionsberechnungen | 
| MYSQL_TYPE_FLOAT | FLOAT-Feld | 
| MYSQL_TYPE_DOUBLE | DOUBLE- oderREAL-Feld | 
| MYSQL_TYPE_BIT | BIT-Feld | 
| MYSQL_TYPE_TIMESTAMP | TIMESTAMP-Feld | 
| MYSQL_TYPE_DATE | DATE-Feld | 
| MYSQL_TYPE_TIME | TIME-Feld | 
| MYSQL_TYPE_DATETIME | DATETIME-Feld | 
| MYSQL_TYPE_YEAR | YEAR-Feld | 
| MYSQL_TYPE_STRING | CHAR- oderBINARY-Feld | 
| MYSQL_TYPE_VAR_STRING | VARCHAR- oderVARBINARY-Feld | 
| MYSQL_TYPE_BLOB | BLOB- oderTEXT-Feld (die
                    Maximallänge wird mitmax_lengthermittelt) | 
| MYSQL_TYPE_SET | SET-Feld | 
| MYSQL_TYPE_ENUM | ENUM-Feld | 
| MYSQL_TYPE_GEOMETRY | Feld eines raumbezogenen Typs | 
| MYSQL_TYPE_NULL | Feld mit NULL-Typ | 
| MYSQL_TYPE_CHAR | Veraltet; verwenden Sie stattdessen MYSQL_TYPE_TINY | 
            Mit dem Makro IS_NUM() können Sie
            testen, ob ein Feld einen numerischen Typ hat. Wenn Sie den
            type-Wert an IS_NUM()
            übergeben und TRUE zurückgeliefert wird, ist das Feld
            numerisch:
          
if (IS_NUM(field->type))
    printf("Field is numeric\n");
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

