- mysqli_fetch_field_direct
- Parameters
- Return Values
- Examples
- See Also
- mysqli_fetch_field
- Parameters
- Return Values
- Examples
- See Also
- mysqli_fetch_fields
- Parameters
- Return Values
- Examples
- See Also
- PHP mysqli fetch_field() Function
- Definition and Usage
- Syntax
- Object oriented style:
- Procedural style:
- Parameter Values
- Technical Details
- Example — Procedural style
mysqli_fetch_field_direct
Returns an object which contains field definition information from the specified result set.
Parameters
The field number. This value must be in the range from 0 to number of fields — 1 .
Return Values
Returns an object which contains field definition information or false if no field information for specified fieldnr is available.
Attribute | 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 |
def | The default value for this field, represented as a string |
max_length | The maximum width of the field for the result set. As of PHP 8.1, this value is always 0 . |
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 numeric fields) |
Examples
Example #1 Object-oriented style
$mysqli = new mysqli ( «localhost» , «my_user» , «my_password» , «world» );
?php
/* check connection */
if ( mysqli_connect_errno ()) printf ( «Connect failed: %s\n» , mysqli_connect_error ());
exit();
>
$query = «SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5» ;
if ( $result = $mysqli -> query ( $query ))
/* Get field information for column ‘SurfaceArea’ */
$finfo = $result -> fetch_field_direct ( 1 );
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» , $finfo -> type );
/* close connection */
$mysqli -> close ();
?>
Example #2 Procedural style
$link = mysqli_connect ( «localhost» , «my_user» , «my_password» , «world» );
?php
/* check connection */
if ( mysqli_connect_errno ()) printf ( «Connect failed: %s\n» , mysqli_connect_error ());
exit();
>
$query = «SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5» ;
if ( $result = mysqli_query ( $link , $query ))
/* Get field information for column ‘SurfaceArea’ */
$finfo = mysqli_fetch_field_direct ( $result , 1 );
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» , $finfo -> type );
/* close connection */
mysqli_close ( $link );
?>
The above examples will output:
Name: SurfaceArea Table: Country max. Len: 10 Flags: 32769 Type: 4
See Also
- mysqli_num_fields() — Gets the number of fields in the result set
- mysqli_fetch_field() — Returns the next field in the result set
- mysqli_fetch_fields() — Returns an array of objects representing the fields in a result set
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.
Parameters
Return Values
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 |
def | Reserved for default value, currently always «» |
db | The name of the database |
catalog | The catalog name, always «def» |
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) |
Examples
Example #1 Object-oriented style
$mysqli = new mysqli ( «localhost» , «my_user» , «my_password» , «world» );
?php
/* 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 ();
?>
Example #2 Procedural style
$link = mysqli_connect ( «localhost» , «my_user» , «my_password» , «world» );
?php
/* 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
See Also
- mysqli_num_fields() — Gets the number of fields in the result set
- mysqli_fetch_field_direct() — Fetch meta-data for a single field
- mysqli_fetch_fields() — Returns an array of objects representing the fields in a result set
- mysqli_field_seek() — Set result pointer to a specified field offset
mysqli_fetch_fields
This function serves an identical purpose to the mysqli_fetch_field() function with the single difference that, instead of returning one object at a time for each field, the columns are returned as an array of objects.
Parameters
Return Values
Returns an array of objects containing field definition information.
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. As of PHP 8.1, this value is always 0 . |
length | The width of the field, in bytes, as specified in the table definition. Note that this number (bytes) might differ from your table definition value (characters), depending on the character set you use. For example, the character set utf8 has 3 bytes per character, so varchar(10) will return a length of 30 for utf8 (10*3), but return 10 for latin1 (10*1). |
charsetnr | The character set number (id) 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) |
Examples
Example #1 Object-oriented style
$mysqli = new mysqli ( «127.0.0.1» , «root» , «foofoo» , «sakila» );
?php
/* check connection */
if ( $mysqli -> connect_errno ) printf ( «Connect failed: %s\n» , $mysqli -> connect_error );
exit();
>
foreach (array( ‘latin1’ , ‘utf8’ ) as $charset )
// Set character set, to show its impact on some values (e.g., length in bytes)
$mysqli -> set_charset ( $charset );
$query = «SELECT actor_id, last_name from actor ORDER BY actor_id» ;
if ( $result = $mysqli -> query ( $query ))
/* Get field information for all columns */
$finfo = $result -> fetch_fields ();
foreach ( $finfo as $val ) printf ( «Name: %s\n» , $val -> name );
printf ( «Table: %s\n» , $val -> table );
printf ( «Max. Len: %d\n» , $val -> max_length );
printf ( «Length: %d\n» , $val -> length );
printf ( «charsetnr: %d\n» , $val -> charsetnr );
printf ( «Flags: %d\n» , $val -> flags );
printf ( «Type: %d\n\n» , $val -> type );
>
$result -> free ();
>
>
$mysqli -> close ();
?>
Example #2 Procedural style
$link = mysqli_connect ( «127.0.0.1» , «my_user» , «my_password» , «sakila» );
?php
/* check connection */
if ( mysqli_connect_errno ()) printf ( «Connect failed: %s\n» , mysqli_connect_error ());
exit();
>
foreach (array( ‘latin1’ , ‘utf8’ ) as $charset )
// Set character set, to show its impact on some values (e.g., length in bytes)
mysqli_set_charset ( $link , $charset );
$query = «SELECT actor_id, last_name from actor ORDER BY actor_id» ;
if ( $result = mysqli_query ( $link , $query ))
/* Get field information for all columns */
$finfo = mysqli_fetch_fields ( $result );
foreach ( $finfo as $val ) printf ( «Name: %s\n» , $val -> name );
printf ( «Table: %s\n» , $val -> table );
printf ( «Max. Len: %d\n» , $val -> max_length );
printf ( «Length: %d\n» , $val -> length );
printf ( «charsetnr: %d\n» , $val -> charsetnr );
printf ( «Flags: %d\n» , $val -> flags );
printf ( «Type: %d\n\n» , $val -> type );
>
mysqli_free_result ( $result );
>
>
The above examples will output:
====================== Character Set: latin1 ====================== Name: actor_id Table: actor Max. Len: 3 Length: 5 charsetnr: 63 Flags: 49699 Type: 2 Name: last_name Table: actor Max. Len: 12 Length: 45 charsetnr: 8 Flags: 20489 Type: 253 ====================== Character Set: utf8 ====================== Name: actor_id Table: actor Max. Len: 3 Length: 5 charsetnr: 63 Flags: 49699 Type: 2 Name: last_name Table: actor Max. Len: 12 Length: 135 charsetnr: 33 Flags: 20489
See Also
- mysqli_num_fields() — Gets the number of fields in the result set
- mysqli_fetch_field_direct() — Fetch meta-data for a single field
- mysqli_fetch_field() — Returns the next field in the result set
PHP mysqli fetch_field() Function
Return the next field (column) in the result-set, then print each field’s name, table, and max length:
$mysqli = new mysqli(«localhost»,»my_user»,»my_password»,»my_db»);
?php
if ($mysqli -> connect_errno) echo «Failed to connect to MySQL: » . $mysqli -> connect_error;
exit();
>
$sql = «SELECT Lastname, Age FROM Persons ORDER BY Lastname»;
if ($result = $mysqli -> query($sql)) // Get field information for all fields
while ($fieldinfo = $result -> fetch_field()) printf(«Name: %s\n», $fieldinfo -> name);
printf(«Table: %s\n», $fieldinfo -> table);
printf(«Max. Len: %d\n», $fieldinfo -> max_length);
>
$result -> free_result();
>
Look at example of procedural style at the bottom.
Definition and Usage
The fetch_field() / mysqli_fetch_field() function returns the next field (column) in the result-set, as an object.
Syntax
Object oriented style:
Procedural style:
Parameter Values
Parameter | Description |
---|---|
result | Required. Specifies a result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result() |
Technical Details
- name — name of the column
- orgname — original column name (if an alias is specified)
- table — name of table
- orgtable — original table name (if an alias is specified)
- def — reserved for default values, currently always «»
- db — database (new in PHP 5.3.6)
- catalog — catalog name, always «def» (since PHP 5.3.6)
- max_length — maximum width of field
- length — width of field as specified in table definition
- charsetnr — character set number for the field
- flags — bit-flags for the field
- type — data type used for the field
- decimals — for integer fields; the number of decimals used
Example — Procedural style
Return the next field (column) in the result-set, then print each field’s name, table, and max length:
if (mysqli_connect_errno()) echo «Failed to connect to MySQL: » . mysqli_connect_error();
exit();
>
$sql = «SELECT Lastname, Age FROM Persons ORDER BY Lastname»;
if ($result = mysqli_query($con, $sql)) // Get field information for all fields
while ($fieldinfo = mysqli_fetch_field($result)) printf(«Name: %s\n», $fieldinfo -> name);
printf(«Table: %s\n», $fieldinfo -> table);
printf(«max. Len: %d\n», $fieldinfo -> max_length);
>
mysqli_free_result($result);
>