Наиболее надежным способом предотвращения SQL-инъекций является использование параметризированных SQL-параметров.
$db->prepare("SELECT * FROM users WHERE id = ?"); $db->execute($p, array($_GET['id']))
Eсли позиция параметров явно задана, то можно абсолютно безопасно передавать SQL-запросы базе данных, исключая возможность для параметров самим стать SQL-выражениями.