Se usato ovunque correttamente real_escape_string è un'opzione. Ma considera il seguente codice:
$page = $_GET['page'];
$sql = 'SELECT `name` FROM `user` WHERE `id` = ' . mysqli_real_escape_string($page);
Sicuro o no? real_escape_stringa può essere utilizzato solo per eseguire l'escape delle stringhe tra virgolette. $page
potrebbe essere 1 OR id IN (2,3,4,5,6,7,8,9)
→ nessuna virgoletta, nessun vero e proprio escape. Il cast al tipo di dati corretto (int) potrebbe essere d'aiuto in questo caso. È meglio usare dichiarazioni preparate, non è facile utilizzarle in modo improprio.