mysqli_affected_rows
(PHP 5)
mysqli_affected_rows
(no version information, might be only in CVS)
mysqli->affected_rows -- Obtiene el número de filas afectadas en una operación
de MySQL previa
Descripción
Estilo por procedimientos:
mixto
mysqli_affected_rows ( mysqli identificador_de_enlace )
Estilo orientado a objetos (característica):
class
mysqli {
mixto affected_rows
}
mysqli_affected_rows() Regresa el número de filas
afectadas por la última consulta INSERT, UPDATE, o DELETE asociada
con el identificador_de_enlace dado. Si la última
consulta fue invalida, esta función regresará -1.
Nota:
Para sentencias SELECT mysqli_affected_rows() trabaja
igual a mysqli_num_rows().
La función mysqli_affected_rows() sólo trabaja
con consultas que modifican o afectan una tabla. En caso de que necesite el
número de filas de una consulta SELECT, use la función
mysqli_num_rows() en su lugar.
Valores retornados
Un entero mayor a cero indica el número de filas afectadas u obtenidas.
Cero indica que no se actualizaron registros para una sentencia UPDATE, no hubo
coincidencias con la clausula WHERE en la consulta o que no se ha ejecutado
aún ninguna consulta. -1 indica que la consulta regreso un error.
Nota:
Si el número de filas afectadas es mayor que el valor entero máximo,
entonces el número de filas afectadas será regresado como una cadena.
Ejemplos
Ejemplo 1. Estilo orientado a objetos
<?php $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); }
/* Insert rows */ $mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage"); printf("Affected rows (INSERT): %d\n", $mysqli->affected_rows);
$mysqli->query("ALTER TABLE Language ADD Status int default 0");
/* update rows */ $mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50"); printf("Affected rows (UPDATE): %d\n", $mysqli->affected_rows);
/* delete rows */ $mysqli->query("DELETE FROM Language WHERE Percentage < 50"); printf("Affected rows (DELETE): %d\n", $mysqli->affected_rows);
/* select all rows */ $result = $mysqli->query("SELECT CountryCode FROM Language"); printf("Affected rows (SELECT): %d\n", $mysqli->affected_rows);
$result->close();
/* Delete table Language */ $mysqli->query("DROP TABLE Language");
/* close connection */ $mysqli->close(); ?>
|
|
Ejemplo 2. Estilo por procedimientos
<?php $link = mysqli_connect("localhost", "my_user", "my_password", "world");
if (!$link) { printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error()); exit(); }
/* Insert rows */ mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage"); printf("Affected rows (INSERT): %d\n", mysqli_affected_rows($link));
mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");
/* update rows */ mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50"); printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));
/* delete rows */ mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50"); printf("Affected rows (DELETE): %d\n", mysqli_affected_rows($link));
/* select all rows */ $result = mysqli_query($link, "SELECT CountryCode FROM Language"); printf("Affected rows (SELECT): %d\n", mysqli_affected_rows($link));
mysqli_free_result($result);
/* Delete table Language */ mysqli_query($link, "DROP TABLE Language");
/* close connection */ mysqli_close($link); ?>
|
|
El resultado del ejemplo seria:
Affected rows (INSERT): 984
Affected rows (UPDATE): 168
Affected rows (DELETE): 815
Affected rows (SELECT): 169 |