(PHP 5, PHP 7, PHP 8)
mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Devuelve el número total de filas modificadas, eliminadas, insertadas o coincidentes por la última consulta
Estilo orientado a objetos
Estilo por procedimientos
Devuelve el número de filas afectadas por una consulta
INSERT
, UPDATE
o DELETE
.
Funciona como mysqli_stmt_num_rows() para
las consultas SELECT
.
stmt
Sólo estilo por procediminetos: Un identificador de declaraciones devuelto por mysqli_stmt_init().
Un entero mayor que cero indica el número de filas afectadas o recuperadas.
Cero indica que ningún registro fue modificado por una consulta de tipo
UPDATE
, ninguna fila coincide con la cláusula
WHERE
en la consulta o que ninguna consulta
fue ejecutada. -1
indica que la consulta devolvió
un error o que, para una consulta SELECT
,
mysqli_stmt_affected_rows() fue llamado antes de llamar
mysqli_stmt_store_result().
Nota:
Si el número de filas afectadas es mayor que el valor máximo (
PHP_INT_MAX
) que puede tomar un entero, el número de filas afectadas será devuelto como una cadena de caracteres.
Ejemplo #1 Ejemplo 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");
/* Creación de una tabla temporal */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
/* Preparación de la consulta */
$stmt = $mysqli->prepare($query);
/* Vincula una variable a un parámetro ficticio */
$code = 'A%';
$stmt->bind_param("s", $code);
/* Ejecución de la consulta */
$stmt->execute();
printf("Filas insertadas: %d\n", $stmt->affected_rows);
?>
Estilo por procedimientos
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Creación de una tabla temporal */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
/* Preparación de la consulta */
$stmt = mysqli_prepare($link, $query);
/* Vincula una variable a un parámetro ficticio */
$code = 'A%';
mysqli_stmt_bind_param($stmt, "s", $code);
/* Ejecución de la consulta */
mysqli_stmt_execute($stmt);
printf("Filas insertadas: %d\n", mysqli_stmt_affected_rows($stmt));
?>
El resultado del ejemplo sería:
Filas insertadas: 17