Вы не должны html-кодировать данные при записи их в хранилище данных - таким образом, вы можете использовать свои данные и для чего-то другого (например, электронной почты, документов PDF и т. Д.). Как уже сказал Assaf : необходимо избегать SQL-инъекций, избегая ввода или используя параметризованные запросы на вставку.
Вы должны, нет, скажем, должны однако html-кодировать ваши данные при отображении на HTML-странице! Это сделает опасный код HTML или Javascript бесполезным, поскольку присутствующие в данных HTML-теги больше не будут распознаваться браузером как HTML-теги.
Процесс немного сложнее, когда вы позволяете пользователям размещать данные с HTML-тегами внутри. Затем вам нужно пропустить кодировку вывода в пользу санации ввода, которая может быть произвольно сложной в зависимости от ваших потребностей (допустимые теги, например).