Si se usa en todas partes correctamente, real_escape_string es una opción. Pero considere el siguiente código:
$page = $_GET['page'];
$sql = 'SELECT `name` FROM `user` WHERE `id` = ' . mysqli_real_escape_string($page);
¿Seguro o no? real_escape_cadena solo se puede usar para escapar cadenas dentro de comillas. $page
podría ser 1 OR id IN (2,3,4,5,6,7,8,9)
→ sin comillas, sin escape real. La conversión al tipo de datos correcto (int) podría ayudar en este caso. Es mejor usar declaraciones preparadas, no son tan fáciles de usar mal.