Определенно НЕТ.
Не из-за каких-то экзотических кодировок, которые вы никогда не встретите в своей жизни, но из-за того простого факта, что побег в одиночку ничего не помогает .
Добавление косых черт не похоже на какое-то божественное вмешательство, которое мгновенно предотвращает страшную инъекцию.
На самом деле, это работает только в сочетании с кавычками. Если вы процитируете свои экранированные данные - вы можете считать себя безопасным, даже с вашей самодельной функцией экранирования (до тех пор, пока вы кодируете либо однобайтовую, либо UTF-8). Однако иногда мы не (или даже не можем) использовать кавычки вокруг наших переменных, и такое место мгновенно становится дырой в безопасности.
Для дальнейших объяснений вы можете обратиться к моему предыдущему ответу на аналогичный вопрос: https://stackoverflow.com/a/8061617/285587
Что касается принятого ответа, просто имейте в виду, что и mysql_real_escape_string (), и подготовленные операторы PDO имеют абсолютно одинаковую уязвимость, если используются сами по себе, без принятия необходимых мер предосторожности. Вы должны правильно установить клиентскую кодировку, чтобы они работали как положено.
Таким образом, на самом деле только use mysql_real_escape_string()
поможет вам не более, чем ваша собственная функция.
mysql_set_charset () должен использоваться с mysql_real_escape_string ()
и в PDO либо режим эмуляции должен быть отключен, либо кодировка должна быть установлена в DSN