Ý tưởng của các câu lệnh chuẩn bị là bạn không nối các biến, thay vào đó bạn ràng buộc các tham số. Sự khác biệt là biến không bao giờ được chèn vào SQL, thay vì công cụ MySQL xử lý biến một cách riêng biệt, điều này không để lại khả năng xảy ra SQL Injection. Điều này cũng có lợi ích bổ sung là không cần thoát hoặc xử lý trước biến.
$query = $db->prepare("SELECT password FROM login WHERE username = :username");
$query->execute(array(':username' => $username));