首页 ? mysql ? mysqli属性affected_rows详解

mysqli属性affected_rows详解

添加评论 次yabo2018.net 注册网

【提示】 非法信息举报请联系本站小编 QQ:5.4069748.5

个人理解,该属性是表示sql运行有操作到的数据库行数(所以下述的drop table操作返回的是0)。

例如

$mysqli->query("CREATE?TABLE?adminuser_bak?SELECT?*?from?adminuser");
printf("Affected?rows?(INSERT):?%dn",?$mysqli->affected_rows);

$mysqli->query("UPDATE?adminuser_bak?SET?islocked=0?WHERE?adminid?=347");
printf("Affected?rows?(UPDATE):?%dn",?$mysqli->affected_rows);

$mysqli->query("DELETE?FROM?adminuser_bak?WHERE?adminid?=346");
printf("Affected?rows?(DELETE):?%dn",?$mysqli->affected_rows);

$result?=?$mysqli->query("SELECT?*?FROM?adminuser_bak");
printf("Affected?rows?(SELECT):?%dn",?$mysqli->affected_rows);

$mysqli->query("DROP?TABLE?adminuser_bak");
printf("Affected?rows?(DROP):?%dn",?$mysqli->affected_rows);

返回结果如下:

Affected?rows?(INSERT):?19????
Affected?rows?(UPDATE):?0????
Affected?rows?(DELETE):?0????
Affected?rows?(SELECT):?19????
Affected?rows?(DROP):?0

insert操作时,表示插入的行数

update操作时,表示更新的行数,如果更新没有成功,那么将返回0

delete操作时,表示删除的行数

select操作时,mysqli_affected_rows() =?mysqli_num_rows().例如,select时,加了limit参数,那么返回的最大值是limit分页数

而drop时,实际上并未涉及到数据行的操作,所以返回是0