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

Filtering Rows with WHERE Bindings تصفية النتائج بشرط WHERE الآمن

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

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

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

لتصفية السجلات بأمان باستخدام جملة الشرط WHERE (سواء للمقارنة الرقمية أو البحث النصي بالمعامل LIKE)، نمرر جميع قيم الفلترة كمعاملات مربوطة في الاستعلام المحضر:

  • الطريقة الصحيحة لمعامل البحث LIKE: ندمج علامتي النسبة المئوية % مع النص داخل مصفوفة execute(["q" => "%" . $term . "%"])، ولا نضع علامات تنصيص حول :q داخل جملة SQL.
  • تحديد الأعمدة المطلوبة صراحةً: اذكر أسماء الأعمدة التي تحتاجها فعلياً بدلاً من SELECT * لتقليل استهلاك الذاكرة والشبكة.
PHP
<?php
$pdo = new PDO("sqlite::memory:", null, null, [
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]);
$pdo->exec("CREATE TABLE books (title TEXT, price INT)");
$pdo->exec("INSERT INTO books VALUES ('PHP 8 Guide', 40), ('CSS Grid', 30)");

$stmt = $pdo->prepare("SELECT title FROM books WHERE title LIKE :q AND price >= :min");
$stmt->execute(["q" => "%PHP%", "min" => 25]);
echo $stmt->fetch()["title"];