mysql_real_escape_string ALONE может предотвратить ничего.
Более того, эта функция не имеет никакого отношения к инъекциям.
Всякий раз, когда вам нужно сбежать, он вам нужен, несмотря на «безопасность», но только потому, что это требуется синтаксисом SQL. И там, где он вам не нужен, выход не поможет даже немного.
Использование этой функции простое: когда вам нужно использовать строку в кавычках в запросе, вы должны экранировать ее содержимое. Не из-за мнимых «злонамеренных пользователей», а просто для того, чтобы избежать этих кавычек, которые использовались для разделения строки. Это чрезвычайно простое правило, но все же крайне ошибочное в PHP.
Это просто функция, связанная с синтаксисом, а не связанная с безопасностью.
В зависимости от этой функции в вопросах безопасности, уверенность в том, что она «защитит вашу базу данных от злонамеренных пользователей» БУДЕТ , приведет вас к инъекции.
Вывод, который вы можете сделать сами:
Нет, этой функции недостаточно .
Подготовленные заявления тоже не серебряная пуля. Она покрывает вашу спину только для половины возможных случаев. Смотрите важное дополнение, которое я сделал к известному вопросу для деталей