English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل PHP الأساسي

دليل PHP متقدم

PHP & MySQL

دليل PHP

استخدام وامثلة �数ون PHP mysqli_stmt_affected_rows()

دليل مرجع PHP MySQLi

�数ون mysqli_stmt_affected_rows() تعود عدد السجلات التي تم التغيير، الحذف أو الإضافة في الجملة التي تم تنفيذها مؤخرًا.

التعريف والاستخدام

mysqli_stmt_affected_rows()�数ون تعود عدد السجلات التي تم التأثير عليها (التغيير، الحذف، الإضافة) للجملة التي تم تنفيذها مؤخرًا.

يمكن أن يعمل هذا ال�数ون بشكل صحيح فقط بعد إجراء جمل INSERT، UPDATE أو DELETE. إذا كنت بحاجة إلى معرفة عدد السجلات المتأثرة باستعلام SELECT، فإنك بحاجة إلى استخدام mysqli_stmt_num_rows() �数ون.

النص

mysqli_stmt_affected_rows($stmt)

الإعداد

الرقمالإعدادات وشرحها
1

stmt(مطلوب)

هذا هو الكائن الذي يمثل جملة تنفيذ استعلام SQL.

القيمة المُرجعة

�数ون PHP mysqli_stmt_affected_rows() تعود قيمة كاملة تُظهر عدد السجلات التي تم التأثير عليها بسبب العمليات السابقة (INSERT، UPDATE، REPLACE أو DELETE).

إذا كانت هناك أخطاء في الجملة، فإن هذه الوظيفة تعود-1.إذا لم تكن هناك سجلات تم التأثير عليها، فإن هذه الوظيفة تعود0.

إصدار PHP

تم إدخال هذه الوظيفة لأول مرة في إصدار PHP 5، وهي قابلة الاستخدام في جميع الإصدارات الأعلى.

مثال على الإنترنت

الافتراض أننا قد قمنا بإنشاء جدول يُدعى employee في قاعدة بيانات MySQL، وهو يحتوي على ما يلي:

mysql> select * from employee;
+------------+--------------+------+------+--------+
| FIRST_NAME | LAST_NAME    | AGE  | SEX  | INCOME |
+------------+--------------+------+------+--------+
| Vinay      | Bhattacharya |   20 | M    |  21000 |
| Sharukh    | Sheik        |   25 | M    |  23300 |
| Trupthi    | Mishra       |   24 | F    |  51000 |
| Sheldon     | Cooper        |      25  | M      |      2256  |
| Sarmista    | Sharma        |      28  | F      |    15000  |
+------------+--------------+------+------+--------+
5 rows in set (0.00 sec)

هذا مثال يوضحmysqli_stmt_affected_rows()استخدام الدالة (نمط البرمجة العمودي)، بعد تنفيذ update لتحديث البيانات، عودة عدد الصفوف المتأثرة:

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   $stmt = mysqli_prepare($con, "UPDATE employee set INCOME=INCOME-? where INCOME>=?");
   mysqli_stmt_bind_param($stmt, "si", $reduct, $limit);
   $limit = 20000;
   $reduct = 5000;
   //تنفيذ الجملة
   mysqli_stmt_execute($stmt);
   print("السجلات المعدلة......\n");
   //عدد الصفوف المتأثرة
   $count = mysqli_stmt_affected_rows($stmt);
   //إنهاء الجملة
   mysqli_stmt_close($stmt);
   //إغلاق الاتصال
   mysqli_close($con);
   print("الصفوف المتأثرة ".$count);
?>

إخراج النتائج

السجلات المعدلة......
الصفوف المتأثرة 3

مثال على الإنترنت

جملة هذا الدالة في نمط البرمجة الموجهة للأجسام هي$con->affected_rows;.هذا مثال على نمط البرمجة الموجهة للأجسام، بعد تنفيذ delete لإزالة البيانات، عودة عدد الصفوف المتأثرة:

<?php
   // إقامة الاتصال
   $con = new mysqli("localhost", "root", "password", "mydb");
   $con -> query("CREATE TABLE Test(Name VARCHAR(255), AGE INT)");
   print("إنشاء الجدول.....\n");
   $con -> query("insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)");
   print("إدخال السجلات.....\n");
   $stmt = $con -> prepare("DELETE FROM Test WHERE Name in(?, ?)");
   $stmt -> bind_param("ss", $name1, $name2);
   $name1 = 'Raju';
   $name2 = 'Rahman';
   print("تم حذف السجلات.....\n");
   //تنفيذ الجملة
   $stmt->execute();
   //Affected rows
   $count = $stmt -> affected_rows;
   print("عدد الصفوف المتأثرة ". $count);
   //إنهاء الجملة
   $stmt->close();
   //إغلاق الاتصال
   $con->close();
?>

إخراج النتائج

إنشاء الجدول.....
إدخال السجلات.....
تم حذف السجلات.....
عدد الصفوف المتأثرة 2

مثال على الإنترنت

إذا لم تؤثر الاستعلام على أي صف، دعنا نتحقق من قيمتها العائدة-

<?php
   $con = @mysqli_connect("localhost", "root", "password", "mydb");
   mysqli_query($con, "CREATE TABLE Test(Name VARCHAR(255), AGE INT)");
   print("إنشاء الجدول.....\n");
   mysqli_query($con, "insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)");
   print("إدخال السجلات.....\n");
   $stmt = mysqli_prepare($con, "DELETE FROM test where Age<?");
   mysqli_stmt_bind_param($stmt, "i", $num);
   $num = 8;
   //تنفيذ الجملة
   mysqli_stmt_execute($stmt);
   //عدد الصفوف المتأثرة
   $count = mysqli_stmt_affected_rows($stmt);
   print("عدد الصفوف المتأثرة (عند عدم تنفيذ أي عملية استعلام): ". $count);
   //إنهاء الجملة
   mysqli_stmt_close($stmt);
   //إغلاق الاتصال
   mysqli_close($con);
?>

إخراج النتائج

إنشاء الجدول.....
إدخال السجلات.....
عدد الصفوف المتأثرة (عند عدم تنفيذ أي عملية استعلام): 0

دليل مرجع PHP MySQLi