English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
�数ون 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 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