Retorna os metadados de resultado de uma instrução preparada

# mysqli_stmt::result_metadata

# mysqli_stmt_result_metadata

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::result_metadata -- mysqli_stmt_result_metadata — Retorna os metadados de resultado de uma instrução preparada

### Descrição

Estilo orientado a objetos

public function mysqli_stmt::result_metadata(): mysqli_result|false

Estilo procedural

function mysqli_stmt_result_metadata(mysqli_stmt `$statement`): mysqli_result|false

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:

> - 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()

> 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().

### Parâmetros

`statement`
  Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

### Valor Retornado

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.

### Erros/Exceções

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.

### Exemplos

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);
    ?>

### Veja Também

- mysqli_prepare() - Prepara uma instrução SQL para execução
- mysqli_free_result() - Libera memória associada a um resultado
- mysqli_stmt_get_result() - Obtém um resultado de uma instrução preparada como um objeto mysqli_result

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open