تقييم الدرس 19: الاتصال بقاعدة البيانات عبر PDO. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».
1السؤال الأول: اختر الإجابة الصحيحة
1) أي DSN صحيح للاتصال بقاعدة store على MySQL محليًّا؟
2) لماذا نضع الاتصال في db.php واحد؟
3) أي طريقة تعيد صفًّا واحدًا؟
4) مستخدم XAMPP الافتراضي لـ MySQL:
5) ماذا يطبع الكود إن كان جدول products فيه 12 صفًّا؟
<?phprequire'db.php';echo$pdo->query('SELECT COUNT(*) FROM products')->fetchColumn();
2السؤال الثاني: صح أم خطأ
1) PDO تعمل مع MySQL و SQLite بالأسلوب نفسه.
الصواب: صح
2) نعرض رسالة PDOException كاملة للزائر ليعرف سبب المشكلة.
الصواب: خطأ
3) charset=utf8mb4 ضروري لحفظ النص العربي صحيحًا في MySQL.
الصواب: صح
4) fetch() تعيد مصفوفة فارغة حين لا توجد صفوف.
الصواب: خطأ
3السؤال الثالث: أكمل الفراغات من القائمة المنسدلة
1) لتحويل أخطاء القاعدة إلى استثناءات نضبط ATTR_ERRMODE على .
الإجابة: ERRMODE_EXCEPTION
2) أداة إدارة MySQL من المتصفح في XAMPP اسمها .
الإجابة: phpMyAdmin
3) لجلب كل الصفوف مرة واحدة نستخدم .
الإجابة: fetchAll()
4السؤال الرابع: أسئلة عملية
1) ماذا يرسل الخادم؟
<?php$pdo = newPDO('sqlite::memory:');$pdo->exec("CREATE TABLE t (n INTEGER); INSERT INTO t VALUES (4), (6), (10);");echo$pdo->query('SELECT SUM(n) FROM t')->fetchColumn();
الناتج الصحيح:
20
2) ماذا يرسل الخادم؟ (كل سطر في سطر)
<?php$pdo = newPDO('sqlite::memory:');$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);$pdo->exec("CREATE TABLE c (name TEXT); INSERT INTO c VALUES ('جدة'), ('أبها');");foreach ($pdo->query('SELECT name FROM c ORDER BY name') as$r) {echo$r['name'] . "\n";}