شرح صفوف ومحتوى الفقرة
عند عرض نموذج التعديل، املأ خاصية value للحقول عبر htmlspecialchars($old["title"] ?? $task["title"], ENT_QUOTES, "UTF-8") وأرسل التعديلات بطلب POST.
- قدّم القيمة المؤقتة
$old["title"]على قيمة قاعدة البيانات$task["title"]حتى لا تضيع تعديلات المستخدم عند حدوث خطأ تحقق. - قيّد استعلام التحديث
UPDATEبالشرط المزدوجWHERE id = :id AND user_id = :uid. - حوّل الصفحة بنمط PRG فور نجاح التحديث.
قام المالك الشرعي 42 بتحديث المهمة 10 بنجاح، وأكدت rowCount() تعديل صف واحد.
PHP
<?php
$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE tasks (id INTEGER PRIMARY KEY, user_id INT, title TEXT)');
$pdo->exec("INSERT INTO tasks VALUES (10, 42, 'Draft Lesson')");
$stmt = $pdo->prepare('UPDATE tasks SET title = :t WHERE id = :id AND user_id = :u');
$stmt->execute(['t' => 'Published Lesson', 'id' => 10, 'u' => 42]);
echo "Updated Rows: " . $stmt->rowCount() . "\n";