返回结果集中的行数。
PHP docs for mysqli_affected_rows说
在结果上调用返回受上一次INSERT,UPDATE,REPLACE或DELETE查询影响的行数。
_num_rows,并在连接上调用_affected_rows。因为我认为他们做了同样的事情(如果我错了,请纠正这个假设),我想知道一个人是否比另一个更好,以及哪种情况会要求哪个功能。
Aren 影响的行数和结果集中的行数同义吗?
答案 0 :(得分:7)
num_rows
告诉您您刚刚使用SELECT
查询选择的结果集中有多少行。 affected_rows
告诉您多少行受INSERT
,UPDATE
,REPLACE
或DELETE
查询影响的行。差别很明显:
$resultSet = mysqli_query($c, 'SELECT ...');
echo mysqli_num_rows($resultSet);
SELECT
结果集进入num_rows
。
mysqli_query($c, 'UPDATE ...');
echo mysqli_affected_rows($c);
没有结果集,没有num_rows
。
答案 1 :(得分:4)
mysql_affect_rows
指的是您使用UPDATE/INSERT
查询的行数
并mysql_num_rows
计算SELECT
语句找到的行数
答案 2 :(得分:0)
我想补充一点,在mysql的最新版本中,这可能已更改。
我最近在寻找差异,发现mysqli_num_rows
是的,它计算您的SELECT
语句找到了多少行。
mysqli_affected_rows
将计算UPDATE/INSERT/DELETE/REPLACE
和 SELECT
语句“受影响”的行数。
除非您试图比较SELECT
语句中返回的行数与UPDATE/INSERT/DELETE/REPLACE
中受影响的行数之间的比较,否则您无需担心要使用的行数。如果要在语义上是正确的,则可以在相应的语句中使用适当的语句。
https://dev.mysql.com/doc/refman/8.0/en/mysql-affected-rows.html
对于SELECT语句,
mysql_affected_rows()
像mysql_num_rows()