Итак, у меня есть функция с именем escape, которая выглядит следующим образом:
function escape($string){
$escaped_string = mysqli_real_escape_string($this->conn, $string);
return $escaped_string;
}
Я перед выполнением запроса посылаю сюда переменную (очевидно, полученную из пользовательского ввода), поэтому ее экранировали по соображениям безопасности.
Теперь я знаю, что можно использовать array_walk для применения массива значений к этой функции, но я просто хочу знать, есть ли причина, почему я не должен? Я знаю, что это звучит как глупый вопрос, но было бы неплохо и легко применить его к массиву введенных пользователем значений, а не к каждой переменной.
Обычно, если при создании функции я буду делать это следующим образом:
function whatever($user_input){
$user_input = $this->escape($user_input);
$this->query("SELECT dog from pets where owner = '$user_input'");
e.c.t.
}
Но если у меня много введенных пользователем данных из формы, например, id, я просто передаю массив виспользуйте функцию array_walk для функции escape, чтобы избавить себя от хлопот. Но опять же, есть ли какая-то конкретная причина (с точки зрения безопасности), почему это не очень хорошая идея?