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.

إذا كانت آخر عملية هي استعلام DELETE بدون شرط (WHERE)، سيتم حذف جميع السجلات في الجدول، ولكن قبل إصدار 4.1.2، كانت قيمة هذا الفونكشن 0.

عند استخدام استعلام UPDATE، لا يحدث MySQL تحديث الأعمدة التي تحتوي على نفس القيمة القديمة والجديدة. هذا يجعل قيمة mysql_affected_rows() لا تكون بالضرورة عدد السجلات التي تتوافق مع شرط الاستعلام، بل عدد السجلات التي تم تعديلها فقط.

جملة REPLACE تزيل أولاً السجلات التي تحتوي على المفتاح الرئيسي نفسه، ثم تضيف سجلاً جديداً. يعود هذا الفونكشن بعدد السجلات المزالة بالإضافة إلى عدد السجلات المضافة.

مثال

<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
  {
  die("لم يتم الاتصال: " . mysql_error());
  }
mysql_select_db("mydb");
mysql_query("DELETE FROM mytable WHERE id < 5");
$rc = mysql_affected_rows();;
echo "المسجلات المحذوفة: " . $rc;
mysql_close($con);
?>

الإخراج:

المسجلات المحذوفة: 4