(PHP 5)
mysqli_result::fetch_field -- mysqli_fetch_field — Returns the next field in the result set
Objektorientierter Stil
Prozeduraler Stil
Returns the definition of one column of a result set as an object. Call this function repeatedly to retrieve information about all columns in the result set.
Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.
Returns an object which contains field definition information or FALSE if no field information is available.
| Property | Description | 
|---|---|
| name | The name of the column | 
| orgname | Original column name if an alias was specified | 
| table | The name of the table this field belongs to (if not calculated) | 
| orgtable | Original table name if an alias was specified | 
| max_length | The maximum width of the field for the result set. | 
| length | The width of the field, as specified in the table definition. | 
| charsetnr | The character set number for the field. | 
| flags | An integer representing the bit-flags for the field. | 
| type | The data type used for this field | 
| decimals | The number of decimals used (for integer fields) | 
Objektorientierter Stil
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";
if ($result = $mysqli->query($query)) {
    /* Get field information for all columns */
    while ($finfo = $result->fetch_field()) {
        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}
/* close connection */
$mysqli->close();
?>
Prozeduraler Stil
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";
if ($result = mysqli_query($link, $query)) {
    /* Get field information for all fields */
    while ($finfo = mysqli_fetch_field($result)) {
        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}
/* close connection */
mysqli_close($link);
?>
The above examples will output:
Name: Name Table: Country max. Len: 11 Flags: 1 Type: 254 Name: SurfaceArea Table: Country max. Len: 10 Flags: 32769 Type: 4
The flags used by MySql are:                                                                                                                                            
       NOT_NULL_FLAG = 1                                                                              
       PRI_KEY_FLAG = 2                                                                               
       UNIQUE_KEY_FLAG = 4                                                                            
       BLOB_FLAG = 16                                                                                 
       UNSIGNED_FLAG = 32                                                                             
       ZEROFILL_FLAG = 64                                                                             
       BINARY_FLAG = 128                                                                              
       ENUM_FLAG = 256                                                                                
       AUTO_INCREMENT_FLAG = 512                                                                      
       TIMESTAMP_FLAG = 1024                                                                          
       SET_FLAG = 2048                                                                                
       NUM_FLAG = 32768                                                                               
       PART_KEY_FLAG = 16384                                                                          
       GROUP_FLAG = 32768                                                                             
       UNIQUE_FLAG = 65536                                                                            
To test if a flag is set you can use & like so:
<?php
$meta = $mysqli_result_object->fetch_field();
if ($meta->flags & 4) { 
  echo 'Unique key flag is set'; 
} 
?>