PHP htmlentities () на входе перед вставкой БД, а не на выходе

Интересно, есть ли недостатки или плохая практика в выполнении следующей процедуры:

$ user_input -> htmlentities ($ user_input) -> mysql_escape ($ user_input) -> вставить $ user_input в БДВыберите $ user_input из БД -> echo $ user_input

вместо того, чтобы делать следующее:

$ user_input -> mysql_escape ($ user_input) -> вставить $ user_input в БДВыберите $ user_input из БД -> echo htmlentities ($ user_input)

Поскольку мы показываем один и тот же $ user_input во многих местах, вместо этого он чувствует себя более эффективно на входе, есть ли какие-либо недостатки / плохая практика / эксплойт-способность в этом?

Ура!

Хорошие ответы на вопрос от:

@Matt: В общем, чтобы вещи были читабельными и понятными, старайтесь хранить их как можно ближе к оригинальному, нефильтрованному контенту. Это зависит от двух вещей: собирается ли другой человек / программа ссылаться на эти данные? Должны ли данные быть легко редактируемыми?

@Sjoerd: есть недостаток, если вы хотите отображать данные как что-то другое, чем HTML, например скачать CSV, PDF и т. д.

Ответы на вопрос(1)

Ваш ответ на вопрос