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 查詢所影響的記錄行數。

返回值

執行成功,則返回受影響的行的數目,如果最近一次查詢失敗的話,函數返回 -1。

如果最近一次操作是沒有任何條件(WHERE)的 DELETE 查詢,在表中所有的記錄都會被刪除,但本函數返回值在 4.1.2 版之前都為 0。

當使用 UPDATE 查詢,MySQL 不會將原值與新值一樣的列更新。這樣使得 mysql_affected_rows() 函數返回值不一定就是查詢條件所符合的記錄數,只有真正被修改的記錄數才會被返回。

REPLACE 語句首先刪除具有相同主鍵的記錄,然后插入一個新記錄。該函數返回的是被刪除的記錄數加上被插入的記錄數。

實例

<?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);
?>

輸出:

Records deleted: 4