mysqli_fetch_field

(PHP 5)

mysqli_fetch_field

(no version information, might be only in CVS)

result->fetch_field -- Returns the next field in the result set

Description

Procedural style:

object mysqli_fetch_field ( mysqli_result result )

Object oriented style (method):

class mysqli_result {

object fetch_field ( void )

}

The mysqli_fetch_field() 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. mysqli_fetch_field() returns FALSE when no more fields are left.

Возвращаемые значения

Returns an object which contains field definition information or FALSE if no field information is available.

Таблица 1. Object properties

PropertyDescription
nameThe name of the column
orgnameOriginal column name if an alias was specified
tableThe name of the table this field belongs to (if not calculated)
orgtableOriginal table name if an alias was specified
defThe default value for this field, represented as a string
max_lengthThe maximum width of the field for the result set.
flagsAn integer representing the bit-flags for the field.
typeThe data type used for this field
decimalsThe number of decimals used (for integer fields)

Примеры

Пример 1. Object oriented style

<?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();
?>

Пример 2. Procedural style

<?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);
?>

Результат выполнения данного примера:

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4


mysqli_fetch_field
jakerosoft at hotmail dot com
16-Aug-2005 09:15
<?
$fieldinfo
= $result->fetch_field();
if (
$fieldinfo & MYSQLI_NOT_NULL_FLAG)  {
  print
"not null flag is set";
} else {
  print
"not null flag is NOT set";
}
?>
Marc-Andr
07-Jul-2005 03:56
The "type" property will return a numerical representation of a field type instead of a "meaningful" string.

Here is an array that may help you:

<?php
$mysqli_type
= array();
$mysqli_type[0] = "decimal";
$mysqli_type[1] = "tinyint";
$mysqli_type[2] = "smallint";
$mysqli_type[3] = "int";
$mysqli_type[4] = "float";
$mysqli_type[5] = "double";
$mysqli_type[7] = "timestamp";
$mysqli_type[8] = "bigint";
$mysqli_type[9] = "mediumint";
$mysqli_type[10] = "date";
$mysqli_type[11] = "time";
$mysqli_type[12] = "datetime";
$mysqli_type[13] = "year";
$mysqli_type[252] = "blob"; // text, blob, tinyblob,mediumblob, etc...
$mysqli_type[253] = "string"; // varchar and char
$mysqli_type[254] = "enum";
?>

<mysqli_fetch_field_directmysqli_fetch_fields>
 Last updated: Tue, 15 Nov 2005