شبكة تعلم مع ناو

ما فائدة الاستعلامات المجهزة (Prepared Statements)؟

الفائدة الأساسية من الاستعلامات المجهزة هي منع هجمات SQL Injection.

$stmt = $pdo->prepare('SELECT * FROM users WHERE email = ?');
$stmt->execute([$_POST['email']]);
$user = $stmt->fetch();

كيف تحمي؟

الأمر يُرسل إلى قاعدة البيانات منفصلًا عن القيم. مهما كتب المستخدم في البريد، يُعامل كقيمة نصية فقط، ولا يمكن أن يصبح جزءًا من أمر SQL.

فائدة إضافية

إذا نُفّذ الاستعلام نفسه مرات كثيرة بقيم مختلفة، يمكن تجهيزه مرة واحدة، فيصبح أسرع قليلًا. لكنها ليست وسيلة لتقليل استهلاك الذاكرة.

$stmt = $pdo->prepare('INSERT INTO logs (msg) VALUES (?)');
foreach ($messages as $m) {
    $stmt->execute([$m]);
}

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.