شرح صفوف ومحتوى الفقرة
صفِّ سجلات قاعدة البيانات بدمج شروط WHERE المنطقية والرقمية مع المعاملات المحضرة المربوطة بأمان.
- يجب تمثيل كل قيمة ديناميكية داخل شرط
WHEREبمعامل محضر (:statusو:minPrice) بدلاً من الدمج النصي المباشر. - عند الجمع بين
ANDوORفي استعلام SQL، أحِط مجموعةORبقوسين لضمان وضوح أولوية التنفيذ. - استدعِ
fetchAll(PDO::FETCH_ASSOC)بعد$stmt->execute()لجلب كافة الصفوف المطابقة كمصفوفة ترابطية.
يُربط المعاملان :lvl و:max بأمان داخل execute() لإرجاع الدورات التي تحقق الشرطين معاً.
PHP
<?php
$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE courses (title TEXT, level TEXT, price INT)');
$pdo->exec("INSERT INTO courses VALUES ('PHP Core', 'beginner', 0), ('PDO Pro', 'advanced', 90)");
$stmt = $pdo->prepare('SELECT title FROM courses WHERE level = :lvl AND price <= :max');
$stmt->execute(['lvl' => 'beginner', 'max' => 50]);
$rows = $stmt->fetchAll(PDO::FETCH_COLUMN);
echo "Matched: " . implode(', ', $rows) . "\n";