انتقل إلى محتوى الدرس

Checking Affected Rows rowCount فحص الصفوف المتأثرة بـ rowCount

تعلّم تحديث وحذف السجلات وإدارة المعاملات البنكية في PDO بأسلوب PHP 8 الحديث مع أمثلة عملية وتطبيقات تفاعلية.
1 صفوف تعليمية
PHP
1 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

بعد تنفيذ استعلام INSERT أو UPDATE أو DELETE، نستدعي الدالة $stmt->rowCount() من كائن الاستعلام $stmt لمعرفة العدد الفعلي للصفوف التي تأثرت بالعملية:

  • اكتشاف المعرفات غير الموجودة: إذا نفذت استعلام حذف أو تحديث لمعرف معين وكانت نتيجة $stmt->rowCount() === 0، فهذا يعني أن المعرف غير موجود أصلاً في الجدول.
  • تجنب استخدامها مع SELECT: صُممت rowCount() لعمليات التعديل والكتابة، أما لحساب عدد نتائج البحث فاستخدم SELECT COUNT(*) مع fetchColumn().
PHP
<?php
$pdo = new PDO("sqlite::memory:");
$pdo->exec("CREATE TABLE coupons (code TEXT, active INT)");
$pdo->exec("INSERT INTO coupons VALUES ('SAVE20', 1)");

$stmt = $pdo->prepare("DELETE FROM coupons WHERE code = :code");
$stmt->execute(["code" => "SAVE20"]);
echo "Deleted rows: " . $stmt->rowCount();