(PHP 5, PHP 7, PHP 8)
mysqli_stmt::result_metadata -- mysqli_stmt_result_metadata — Retorna os metadados de resultado de uma instrução preparada
Estilo orientado a objetos
Estilo procedural
Se uma instrução passada a mysqli_prepare() for do tipo que produz um conjunto de resultados, mysqli_stmt_result_metadata() retornará o objeto de resultado que pode ser usado para processar a meta informação como o número total de campos e informações individual dos campos.
Esta função retorna um objeto vazio mysqli_result que pode ser usado para acessar informações de metadados da instrução preparada sem precisar buscar as linhas de dados reais. Não é necessário usar esta função ao usar mysqli_stmt_get_result() para recuperar todo o conjunto de resultados de uma instrução preparada como um objeto de resultado.
Nota:
Este objeto de conjunto de resultados pode ser passado como argumento apenas para as funções baseadas em campo que processam metadados de resultados, como:
Nota: O conjunto de resultados retornado por mysqli_stmt_result_metadata() contém apenas metadados. Não contém nenhum resultado de linha. As linhas são obtidas chamando mysqli_stmt_get_result() no identificador da instrução ou com mysqli_stmt_fetch().
statementSomente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().
Retorna um objeto de resultado ou false se um erro ocorrer.
Se a instrução não produzir um conjunto de resultados, false também será retornado.
Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar,
um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT,
uma exceção mysqli_sql_exception será lançada em vez do aviso.
Exemplo #1 Estilo orientado a objetos
<?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();
/* obtém o resultado de metadados */
$result = $stmt->result_metadata();
/* obtém informação do campo a partir do resultado de metadados */
$field = $result->fetch_field();
printf("Nome do campo: %s\n", $field->name);
?>Exemplo #2 Estilo 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);
/* obtém o resultado de metadados */
$result = mysqli_stmt_result_metadata($stmt);
/* obtém informação do campo a partir do resultado de metadados */
$field = mysqli_fetch_field($result);
printf("Nome do campo: %s\n", $field->name);
?>