Recebe resultados de uma instrução preparada nas variáveis vinculadas

# mysqli_stmt::fetch

# mysqli_stmt_fetch

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::fetch -- mysqli_stmt_fetch — Recebe resultados de uma instrução preparada nas variáveis vinculadas

### Descrição

Estilo orientado a objetos

public function mysqli_stmt::fetch(): ?bool

Estilo procedural

function mysqli_stmt_fetch(mysqli_stmt `$statement`): ?bool

Recebe o resultado de uma instrução preparada nas variáveis vinculadas por mysqli_stmt_bind_result().

> Nota:

> Observe que todas as colunas precisam estar vinculadas pela aplicação antes de chamar a função mysqli_stmt_fetch().

> Nota:

> Os dados são transferidos sem buffer quando não se chama a função mysqli_stmt_store_result(), o que pode reduzir o desempenho (mas reduz o consumo de memória).

### Parâmetros

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

### Valor Retornado

Valor Retornado
Valor | Descrição
--- | ---
`true` | Sucesso. Dados foram recebidos
`false` | Error occurred
`null` | Não há mais linhas/dados ou ocorreu um truncamento de dados

### 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", "world");

    /* verifica a conexão */
    if (mysqli_connect_errno()) {
        printf("Conexão falhou: %s\n", mysqli_connect_error());
        exit();
    }

    $query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

    if ($stmt = $mysqli->prepare($query)) {

        /* executa a instrução */
        $stmt->execute();

        /* vincula as variáveis do resultado */
        $stmt->bind_result($name, $code);

        /* recebe os valores */
        while ($stmt->fetch()) {
            printf ("%s (%s)\n", $name, $code);
        }

        /* fecha a instrução */
        $stmt->close();
    }

    /* fecha a conexão */
    $mysqli->close();
    ?>

Exemplo #2 Estilo procedural

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

    /* verifica a conexão */
    if (mysqli_connect_errno()) {
        printf("Conexão falhou: %s\n", mysqli_connect_error());
        exit();
    }

    $query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

    if ($stmt = mysqli_prepare($link, $query)) {

        /* executa a instrução */
        mysqli_stmt_execute($stmt);

        /* vincula as variáveis do resultado */
        mysqli_stmt_bind_result($stmt, $name, $code);

        /* recebe os valores */
        while (mysqli_stmt_fetch($stmt)) {
            printf ("%s (%s)\n", $name, $code);
        }

        /* fecha a instrução */
        mysqli_stmt_close($stmt);
    }

    /* fecha a conexão */
    mysqli_close($link);
    ?>

Os exemplos acima produzirão:

    Rockford (USA)
    Tallahassee (USA)
    Salinas (USA)
    Santa Clarita (USA)
    Springfield (USA)

### Veja Também

- mysqli_prepare() - Prepara uma instrução SQL para execução
- mysqli_stmt_errno() - Retorna o código de erro para a chamada de instrução mais recente
- mysqli_stmt_error() - Retorna uma descrição em string para o último erro de instrução
- mysqli_stmt_bind_result() - Liga variáveis a uma declaração preparada para armazenamento de resultado

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