Jeśli używane wszędzie poprawnie, real_escape_string jest opcją. Ale rozważ następujący kod:
$page = $_GET['page'];
$sql = 'SELECT `name` FROM `user` WHERE `id` = ' . mysqli_real_escape_string($page);
Bezpieczny czy nie? real_escape_ciąg może być używany tylko do zmiany znaczenia ciągów wewnątrz cudzysłowów. $page
może być 1 OR id IN (2,3,4,5,6,7,8,9)
→ bez cudzysłowów, bez prawdziwej ucieczki. W tym przypadku pomocne może być przesyłanie do właściwego typu danych (int). Lepiej jest używać przygotowanych oświadczeń, nie są one tak łatwe do nadużycia.