داده را با دستور SQL ترکیب نکن
ورودی کاربر را مستقیم در متن SQL نچسبان. Prepared statement متن دستور را از مقدارها جدا نگه میدارد. علاوه بر آن، باید نوع و محدودهٔ داده را پیش از ذخیره بررسی کنی و هنگام نمایش، خروجی را متناسب با محل استفاده escape کنی.
PHP
$statement = $pdo->prepare(
"SELECT id, title FROM courses WHERE id = :id"
);
$statement->execute(["id" => $courseId]);
$course = $statement->fetch(PDO::FETCH_ASSOC);یک تمرین کوچک
یک فرم جستوجوی دوره بساز که فقط شناسهٔ عددی مثبت را قبول کند.
این متن یک نمونهٔ کوتاه است و جایگزین دورهٔ کامل نیست.