تابع mysql_affected_rows() PHP mysql

تعریف و استفاده

تابع 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 قبل از آن صفر است.

وقتی از جستجوهای 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