PHP | mysqli_stmt_result_metadata() Function

PHP mysqli_stmt_result_metadata() 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_stmt_result_metadata() Function.

The PHP mysqli_stmt_result_metadata() function accepts a prepared statement object as a parameter and, if the given executes a SELECT query (or any other query that returns resultset), this function returns a metadata object which contains information about the resultset of the given statement.

Syntax

Following below is the syntax to use this function -

mysqli_stmt_result_metadata($stmt);


Parameter Details

Sr.NoParameter & Description
1

stmt(Mandatory)

This is an object representing a prepared statement.


Return Value

This function returns a metadata object on success and FALSE on failure.

PHP Version

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

Example1

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

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

   mysqli_query($con, "CREATE TABLE test(Name VARCHAR(255), age INT)");
   mysqli_query($con, "INSERT INTO test values('Kennedy', 27)");
   mysqli_query($con, "INSERT INTO test values('Paul', 30)");
   print("Table Created.....\n");

   //Retrieving the contents of the table
   $stmt = mysqli_prepare($con, "SELECT * FROM test");

   //Executing the statement
   mysqli_stmt_execute($stmt);

   //Retrieving the resultset metadata
   $metadata = mysqli_stmt_result_metadata($stmt);
   print_r(mysqli_fetch_fields($metadata));
 
   mysqli_free_result($metadata);

   //Closing the connection
   mysqli_close($con);
?>

Output

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

Table Created.....
Array
(
    [0] => stdClass Object
        (
            [name] => Name
            [orgname] => Name
            [table] => test
            [orgtable] => test
            [def] =>
            [db] => mydb
            [catalog] => def
            [max_length] => 0
            [length] => 765
            [charsetnr] => 33
            [flags] => 0
            [type] => 253
            [decimals] => 0
        )

    [1] => stdClass Object
        (
            [name] => AGE
            [orgname] => AGE
            [table] => test
            [orgtable] => test
            [def] =>
            [db] => mydb
            [catalog] => def
            [max_length] => 0
            [length] => 11
            [charsetnr] => 63
            [flags] => 32768
            [type] => 3
            [decimals] => 0
        )

)

Example2

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

<?php
   //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';
   print("Records Inserted.....\n");

   //Executing the statement
   $stmt->execute();

   //Retrieving the resultset metadata
   $metadata = $stmt->result_metadata();

   $field = $metadata->fetch_field();
   print("Field Name: ".$field->name);

   //Closing the statement
   $stmt->close();

   //Closing the connection
   $con->close();
?>

Output

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

Table Created.....
Record Inserted.....
Field Name: Name


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 mysqli_stmt_send_long_data() Function in PHP.

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.