Полностью полагаться на функцию mysqlirealescape_string для защиты от SQL-инъекций нельзя, потому что она предназначена для форматирования строк, а синтаксис SQL-запросов не исчерпывается строками. 2 Например, для числовых литералов и имён полей эта функция бесполезна. 2
Кроме того, при использовании её в коде приложения есть риск забыть о других частях форматирования или использовать функцию не по назначению, например, для форматирования не строки, а другого литерала, которому экранирование не поможет. 1
Для надёжной защиты от SQL-инъекций рекомендуется использовать параметризованные подготовленные операторы, когда вместо переменных в запрос подставляются специальные маркеры, а сами переменные передаются отдельно. 24