PHP | mysqli_fetch_field() Function

PHP mysqli_fetch_field() Function

Hello folks! welcome back to a new edition of our tutorial on PHP. In this tutorial guide, we are going to be studying about the PHP mysqli_fetch_field() Function.

The mysqli_fetch_field() function accepts a result object as a parameter, and returns the definition information of the next field in the form of an object.


Following below is the syntax to use this function -


Parameter Details

Sr.NoParameter & Description


This is an identifier representing a result object.

Return Value

This built-in PHP function returns an object which contains the definition information of a field in the given result. This PHP function returns false if there is no information.

The object returned contains the following properties $minus;

  • name
  • orgname
  • table
  • orgtable
  • length
  • max_length
  • flags
  • charsetnr
  • decimals
  • type

PHP Version

This PHP function was first introduced in PHP version 5 and works in all the later versions.


The following below is an example which demonstrates the usage of the built-in PHP mysqli_fetch_field() function (in a procedural style) -

   $con = mysqli_connect("localhost", "root", "password", "mydb");

   mysqli_query($con, "CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))");
   print("Table Created.....\n");
   mysqli_query($con, "INSERT INTO myplayers values(1, 'Kennedy', 'Nkpara', 'PortHarcourt', 'Nigeria')");
   mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')");
   mysqli_query($con, "INSERT INTO myplayers values(3, 'Queen', 'Douglas', 'Texas', 'UnitedStates')");
   print("Record Inserted.....\n");

   //Retrieving the contents of the table
   $res = mysqli_query($con, "SELECT * FROM myplayers");

   //Fetching the fields
   while($info = mysqli_fetch_field($res)){
      //Current field
      $currentfield = mysqli_field_tell($res);
      print("Current Field: ".$currentfield."\n");
      print("Name: ".$info->name."\n");
      print("Type: ".$info->type."\n");

   //Closing the statement

   //Closing the connection


When the above code is executed, it will produce the following result -

Table Created.....
Record Inserted.....
Current Field: 1
Name: ID
Type: 3
Current Field: 2
Name: First_Name
Type: 253
Current Field: 3
Name: Last_Name
Type: 253
Current Field: 4
Name: Place_Of_Birth
Type: 253
Current Field: 5
Name: Country
Type: 253


In an object oriented style the syntax of this function is $result->fetch_field(); Following is the example of this function in an object oriented style -

   //Creating a connection
   $con = new mysqli("localhost", "root", "password", "mydb");

   $con -> query("CREATE TABLE Test(Name VARCHAR(255), AGE INT)");
   $con -> query("insert into Test values('Kennedy', 27),('Paul',  30),('Justice', 28)");
   print("Table Created.....\n");

   $stmt = $con -> prepare( "SELECT * FROM Test WHERE Name in(?, ?)");
   $stmt -> bind_param("ss", $name1, $name2);
   $name1 = 'Kennedy';
   $name2 = 'Paul';

   //Executing the statement

   //Retrieving the result
   $result = $stmt->get_result();

   //Current Field
   while($info = $result->fetch_field()){
      $field = $result->current_field;
      print("Current Field: ".$field."\n");
      print("Field Name: ".$info->name."\n");

   //Closing the statement

   //Closing the connection


When the above code is executed, it will produce the following result -

Alright guys! This is where we are going to be rounding up for this tutorial post. In our next tutorial, we are going to be discussing about the PHP mysqli_fetch_field_direct() Function.

Do feel free to ask your questions where necessary and we will attend to them as soon as possible. If this tutorial was helpful to you, you can use the share button to share this tutorial.

Do follow us on our various social media handles available and also subscribe to our newsletter to get our tutorial posts delivered directly to your emails.

Thanks for reading and bye for now.