real_escape_string()
должен быть использован для строк SQL, то есть части запроса, заключенный в кавычках. Необходимо использовать безоговорочно, несмотря на все предыдущие манипуляции. real_escape_string()
Исключает специальные символы в строке для использования в выражении SQL, принимая во внимание текущий набор символов соединения.
Где, как
filter_input
Получает определенную внешнюю переменную по имени и фильтрует его. filter_input
предоставит вам способ проверки ввода для конкретной строки и символов.
- Validate фильтры
- Sanitize фильтры
- Другие фильтры
- Фильтр флаги
Validate фильтры
Как было предложено название оно используется для проверки для конкретного ввода как FILTER_VALIDATE_EMAIL
,
$email = "[email protected]"; // wrong email
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
echo $email.'<br>';
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
}else{
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
}
Sanitize фильтры он будет использовать для проверки и удаления символов из строки.
FILTER_SANITIZE_EMAIL "email" Remove all characters except letters, digits and !#$%&'*+-=?^_`{|}[email protected][].
Для получения дополнительной информации о filter_value.
Поэтому я думаю, что у обоих есть разные роли.
Возможный дубликат [filter \ _input и mysqli \ _real \ _escape \ _string для целых чисел] (http://stackoverflow.com/questions/9653099/filter-input-and-mysqli-real-escape-string-for- целые числа) – arcs