mysqli_stmt::$affected_rows

mysqli_stmt_affected_rows

Returns the total number of rows changed, deleted, inserted, or matched by the last statement executed

&reftitle.description;

&style.oop;

``int``string```mysqli_stmt->affected_rows`

&style.procedural;

``int``string```mysqli_stmt_affected_rows` `mysqli_stmt` `statement`

Returns the number of rows affected by `INSERT`, `UPDATE`, or `DELETE` query. Works like `mysqli_stmt_num_rows` for `SELECT` statements.

&reftitle.parameters;

&mysqli.stmt.description;
&reftitle.returnvalues;

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records were updated for an `UPDATE` statement, no rows matched the `WHERE` clause in the query or that no query has yet been executed. `-1` indicates that the query returned an error or that, for a `SELECT` query, `mysqli_stmt_affected_rows` was called prior to calling `mysqli_stmt_store_result`.

If the number of affected rows is greater than maximum PHP int value, the number of affected rows will be returned as a string value.

&reftitle.examples;

### `mysqli_stmt_affected_rows` example

&style.oop;

    <?php

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

    /* create temp table */
    $mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

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

    /* prepare statement */
    $stmt = $mysqli->prepare($query);

    /* Bind variable for placeholder */
    $code = 'A%';
    $stmt->bind_param("s", $code);

    /* execute statement */
    $stmt->execute();

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

&style.procedural;

    <?php

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

    /* create temp table */
    mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

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

    /* prepare statement */
    $stmt = mysqli_prepare($link, $query);

    /* Bind variable for placeholder */
    $code = 'A%';
    mysqli_stmt_bind_param($stmt, "s", $code);

    /* execute statement */
    mysqli_stmt_execute($stmt);

    printf("Rows inserted: %d\n", mysqli_stmt_affected_rows($stmt));

&examples.outputs;

    Rows inserted: 17

&reftitle.seealso;

- `mysqli_stmt_num_rows`
- `mysqli_stmt_store_result`