PHP mysql_affected_rows() 函数

定义和用法

mysql_affected_rows() 函数返回前一次 MySQL 操作所影响的记录行数。

语法

mysql_affected_rows(link_identifier)
参数 描述
link_identifier 必需。MySQL 的连接标识符。如果没有指定,默认使用最后被 mysql_connect() 打开的连接。如果没有找到该连接,函数会尝试调用 mysql_connect() 建立连接并使用它。如果发生意外,没有找到连接或无法建立连接,系统发出 E_WARNING 级别的警告信息。

说明

取得最近一次与 link_identifier 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。

Returneringsværdi

Returnerer antallet af påvirkede rækker, hvis operationen lykkes, ellers returneres -1, hvis den seneste forespørgsel fejler.

Hvis den seneste operation er en DELETE forespørgsel uden nogen betingelse (WHERE), slettes alle poster i tabellen, men funktionens returnerværdi var 0 før version 4.1.2.

Når der bruges UPDATE forespørgsel, opdaterer MySQL ikke kolonner, der har samme gamle og nye værdi. Dette gør, at mysql_affected_rows() funktionens returnerværdi ikke nødvendigvis er antallet af poster, der matcher forespørgselskriteriet, men kun antallet af ændrede poster, der returneres.

REPLACE sætning først sletter poster med samme primærnøgle, og derefter indsætter en ny post. Funktionen returnerer antallet af slettede poster plus antallet af indsatte poster.

Eksempel

<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
  {
  die("Could not connect: " . mysql_error());
  }
mysql_select_db("mydb");
mysql_query("DELETE FROM mytable WHERE id < 5");
$rc = mysql_affected_rows();
echo "Records deleted: " . $rc;
mysql_close($con);
?>

Output:

Records deleted: 4