شرح صفوف ومحتوى الفقرة
لتصفية السجلات بأمان باستخدام جملة الشرط 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"];