Retorna o número total de linhas modificadas, apagadas, inseridas ou correspondidas pela última instrução executada

# mysqli_stmt::$affected_rows

# mysqli_stmt_affected_rows

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Retorna o número total de linhas modificadas, apagadas, inseridas ou correspondidas pela última instrução executada

### Descrição

Estilo orientado a objetos

int|string $mysqli_stmt->affected_rows;

Estilo procedural

function mysqli_stmt_affected_rows(mysqli_stmt `$statement`): int|string

Retorna o número de linhas afetadas por consultas `INSERT`, `UPDATE` ou `DELETE`. Funciona como mysqli_stmt_num_rows() para instruções `SELECT`.

### Parâmetros

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

### Valor Retornado

Um inteiro maior que zero indica o número de linhas afetadas ou recebidas. Zero indica que nenhum registro foi atualizado para uma instrução `UPDATE`, nenhuma linha correspondeu à cláusula `WHERE` na consulta ou que nenhuma consulta foi executada. `-1` indica que a consulta retornou um erro ou que, para uma consulta `SELECT`, mysqli_stmt_affected_rows() foi chamada antes de mysqli_stmt_store_result().

> Nota:

> Se o número de linhas afetadas for maior que o máximo valor inteiro do PHP, o número de linhas afetadas será retornado como uma string.

### Exemplos

Exemplo #1 Exemplo de mysqli_stmt_affected_rows()

Estilo orientado a objetos

    <?php

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");

    /* cria tabela temporária */
    $mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

    $query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

    /* prepara a instrução */
    $stmt = $mysqli->prepare($query);

    /* Vincula variável para o espaço reservado */
    $code = 'A%';
    $stmt->bind_param("s", $code);

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

    printf("Linhas inseridas: %d\n", $stmt->affected_rows);

Estilo procedural

    <?php

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $link = mysqli_connect("localhost", "my_user", "my_password", "world");

    /* cria tabela temporária */
    mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

    $query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

    /* prepara a instrução */
    $stmt = mysqli_prepare($link, $query);

    /* Vincula variável para o espaço reservado */
    $code = 'A%';
    mysqli_stmt_bind_param($stmt, "s", $code);

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

    printf("Linhas inseridas: %d\n", mysqli_stmt_affected_rows($stmt));

Os exemplos acima produzirão:

    Linhas inseridas: 17

### Veja Também

- mysqli_stmt_num_rows() - Retorna o número de linhas recebidas pelo servidor
- mysqli_stmt_store_result() - Armazena um conjunto de resultados em um buffer interno

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