What is the difference between mysqli_affected_row

2019-07-21 15:50发布

The PHP docs for mysqli_num_rows says

Returns the number of rows in the result set.

The PHP docs for mysqli_affected_rows says

Returns the number of rows affected by the last INSERT, UPDATE, REPLACE or DELETE query.

_num_rows is called on a result, and _affected_rows is called on a connection. Since I think they do the same thing(correct this assumption if I'm wrong), I'm wondering whether one works better than the other, and which situations would call for which function.

Aren't number of rows affected and number of rows in the result set synonymous?

标签: php mysql mysqli
2条回答
Evening l夕情丶
2楼-- · 2019-07-21 16:12

mysql_affect_rows counts on how many rows your UPDATE/INSERT query was used and mysql_num_rows counts how many rows your SELECT statement found

查看更多
太酷不给撩
3楼-- · 2019-07-21 16:20

num_rows tells you how many rows there are in the result set you just selected with a SELECT query. affected_rows tells you how many rows where affected by an INSERT, UPDATE, REPLACE or DELETE query. The difference is obvious:

$resultSet = mysqli_query($c, 'SELECT ...');
echo mysqli_num_rows($resultSet);

SELECT result set goes into num_rows.

mysqli_query($c, 'UPDATE ...');
echo mysqli_affected_rows($c);

No result set, no num_rows.

查看更多
登录 后发表回答