Как вы поняли, что HTML-кодированный текст содержит только амперсанды, точки с запятой и буквенно-цифровые символы после декодирования?
Я действительно могу закодировать "'" в HTML - и это одна из вещей, которые нужны для того, чтобы вы попали в беду (так как это строковый разделитель в SQL).
Итак, он работает ТОЛЬКО если вы поместите кодированный в HTML текст в базу данных.
ТОГДА у вас есть некоторые проблемы с любым текстовым поиском ... и представлением читаемого текста снаружи (как в диспетчере SQL). Я бы посчитал, что действительно плохая спроектированная ситуация, так как вы не решили проблему, просто приклеил клейкую ленту к очевидному вектору атаки.
Числовые поля по-прежнему проблематичны, если только ваша HTML-обработка не является идеальной, что я бы не принял, учитывая этот обходной путь.
Использовать параметры SQL;)