mysqli_stmt::result_metadata

mysqli_stmt_result_metadata

Returns result set metadata from a prepared statement

&reftitle.description;

&style.oop;

`mysqli_result` `mysqli_stmt::result_metadata`

&style.procedural;

`mysqli_result` `mysqli_stmt_result_metadata` `mysqli_stmt` `stmt`

If a statement passed to `mysqli_prepare` is one that produces a result set, `mysqli_stmt_result_metadata` returns the result object that can be used to process the meta information such as total number of fields and individual field information.

This result set pointer can be passed as an argument to any of the field-based functions that process result set metadata, such as:

- `mysqli_num_fields`

- `mysqli_fetch_field`

- `mysqli_fetch_field_direct`

- `mysqli_fetch_fields`

- `mysqli_field_count`

- `mysqli_field_seek`

- `mysqli_field_tell`

- `mysqli_free_result`

The result set structure should be freed when you are done with it, which you can do by passing it to `mysqli_free_result`

The result set returned by `mysqli_stmt_result_metadata` contains only metadata. It does not contain any row results. The rows are obtained by using the statement handle with `mysqli_stmt_fetch`.

&reftitle.parameters;

&mysqli.stmt.description;
&reftitle.returnvalues;

Returns a result object or &false; if an error occurred.

&reftitle.examples;

### &style.oop;

    <?php
    $mysqli = new mysqli("localhost", "my_user", "my_password", "test");

    $mysqli->query("DROP TABLE IF EXISTS friends");
    $mysqli->query("CREATE TABLE friends (id int, name varchar(20))");

    $mysqli->query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

    $stmt = $mysqli->prepare("SELECT id, name FROM friends");
    $stmt->execute();

    /* get resultset for metadata */
    $result = $stmt->result_metadata();

    /* retrieve field information from metadata result set */
    $field = $result->fetch_field();

    printf("Fieldname: %s\n", $field->name);

    /* close resultset */
    $result->close();

    /* close connection */
    $mysqli->close();
    ?>

### &style.procedural;

    <?php
    $link = mysqli_connect("localhost", "my_user", "my_password", "test");

    mysqli_query($link, "DROP TABLE IF EXISTS friends");
    mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

    mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

    $stmt = mysqli_prepare($link, "SELECT id, name FROM friends");
    mysqli_stmt_execute($stmt);

    /* get resultset for metadata */
    $result = mysqli_stmt_result_metadata($stmt);

    /* retrieve field information from metadata result set */
    $field = mysqli_fetch_field($result);

    printf("Fieldname: %s\n", $field->name);

    /* close resultset */
    mysqli_free_result($result);

    /* close connection */
    mysqli_close($link);
    ?>

&reftitle.seealso;

- `mysqli_prepare`
- `mysqli_free_result`