MYSQLI_STMT_RESULT_METADATA(3) 1 MYSQLI_STMT_RESULT_METADATA(3)
mysqli_stmt::result_metadata - Returns result set metadata from a prepared statement
Object oriented style
SYNOPSIS
mysqli_result mysqli_stmt::result_metadata (void )
DESCRIPTION
Procedural style
mysqli_result mysqli_stmt_result_metadata (mysqli_stmt $stmt)
If a statement passed to mysqli_prepare(3) is one that produces a result set, mysqli_stmt_result_metadata(3) returns the result object
that can be used to process the meta information such as total number of fields and individual field information.
Note
This result set pointer can be passed as an argument to any of the field-based functions that process result set metadata, such as:
omysqli_num_fields(3)
omysqli_fetch_field(3)
omysqli_fetch_field_direct(3)
omysqli_fetch_fields(3)
omysqli_field_count(3)
omysqli_field_seek(3)
omysqli_field_tell(3)
omysqli_free_result(3)
The result set structure should be freed when you are done with it, which you can do by passing it to mysqli_free_result(3)
Note
The result set returned by mysqli_stmt_result_metadata(3) contains only metadata. It does not contain any row results. The rows are
obtained by using the statement handle with mysqli_stmt_fetch(3).
PARAMETERS
o $
stmt -Procedural style only: A statement identifier returned by mysqli_stmt_init(3).
RETURN VALUES
Returns a result object or FALSE if an error occurred.
EXAMPLES
Example #1
Object oriented style
<?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
", $field->name);
/* close resultset */
$result->close();
/* close connection */
$mysqli->close();
?>
Example #2
Procedural style
<?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
", $field->name);
/* close resultset */
mysqli_free_result($result);
/* close connection */
mysqli_close($link);
?>
SEE ALSO
mysqli_prepare(3), mysqli_free_result(3).
PHP Documentation Group MYSQLI_STMT_RESULT_METADATA(3)