تقييم الدرس 9
الاستعلامات المعلَّمة
أجب عن الأسئلة ثم اضغط «صحّح ورقتي» في آخر الصفحة. ← العودة إلى الدرس
أسئلة التقييم
تقييم الدرس 9: الاستعلامات المعلَّمة. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».
1السؤال الأول: اختر الإجابة الصحيحة
1) علامات ? في الاستعلام تُعلّم:
2) لماذا لا يُكسر هذا الخادم بترتيب خبيث؟
const express = require('express');const app = express();app.use(express.json());app.use(express.urlencoded({ extended: false })); const sqlite3 = require('sqlite3');const db = new sqlite3.Database(':memory:');db.serialize(() => { db.run(`CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, pass TEXT, role TEXT, email TEXT)`); db.run(`INSERT INTO users (name, pass, role, email) VALUES ('سارة', 's@rah123', 'customer', 'sara@mail.sa'), ('خالد', 'kh@led456', 'customer', 'khaled@mail.sa'), ('المدير', 'Adm!n#2025', 'admin', 'admin@mail.sa')`); db.run(`CREATE TABLE products (id INTEGER PRIMARY KEY, name TEXT, price INTEGER)`); db.run(`INSERT INTO products (name, price) VALUES ('سماعة', 120), ('لوحة مفاتيح', 90), ('كاميرا ويب', 210)`);}); app.get('/products', (req, res) => { // ✓ اسم العمود لا يُعلَّم؛ يُختار من قائمة مسموحة const allowed = { price: 'price', name: 'name' }; const col = allowed[req.query.sort] || 'id'; const dir = req.query.dir === 'desc' ? 'DESC' : 'ASC'; db.all(`SELECT id, name, price FROM products ORDER BY ${col} ${dir}`, [], (e, rows) => res.json(rows));}); app.listen(3000);
3) تأمين عمود الترتيب الديناميكي:
4) الاستعلام الخام في
ORM:5) حتى المعرّف في /
products/:id:2السؤال الثاني: صح أم خطأ
1) التعليم يلزم في عمليات الإدراج والتعديل كما القراءة.
الصواب: صح
2) يمكن تعليم اسم الجدول بعلامة ?.
الصواب: خطأ
3) قائمة المسموح تؤمّن عمود الترتيب الديناميكي.
الصواب: صح
4)
ORM يلغي الحاجة إلى التفكير الأمني كليًّا.الصواب: خطأ
5) المعرّف في الرابط مدخل من المستخدم.
الصواب: صح
3السؤال الثالث: أكمل الفراغات من القائمة المنسدلة
1) ما لا يُعلَّم (اسم عمود، ترتيب) يُختار من قائمة .
الإجابة: مسموحة
2) أطر مثل
Sequelize تُسمّى .الإجابة: ORM
3) القيم في الاستعلام المعلَّم تُمرَّر في .
الإجابة: مصفوفة منفصلة
4السؤال الرابع: أسئلة عملية
1)
ORDER BY يمكن تأمينه بقائمة مسموحة لأن اسم العمود لا يُعلَّم.الصواب: صح
2)
db.get("… id = " + req.params.id) استعلام آمن.الصواب: خطأ
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».