Я создаю список категорий, и я не уверен, как хранить символ Амперсанда в базе данных MySQL. Есть ли проблема / недостаток, если я использую '&'
. Существуют ли какие-либо отличия от использования его в формате html '&'
?
Использование '&' сохраняет несколько байтов. Это не особый характер для MySQL. Вы можете легко создать &
для вывода позже с помощью метода PHP htmlspecialchars()
. Когда ваше поле предназначено для хранения простой информации, вы должны использовать только обычный текст, поскольку это в целом более гибкое, поскольку вы можете создавать различные виды разметки и т. Д. Позже. Исключение: разметка создается пользователем, решения по макету которого вы хотите сохранить с текстом (как в вложенном тексте). Если на вашем входе есть теги и т. Д., Вы можете использовать &
для согласованности.
Вы должны хранить его как &
только если поле в БД содержит HTML (например, <span class="bold">some text</span> & more
). В этом случае вы должны быть очень осторожны в XSS .
Если поле содержит некоторые общие данные (например, имя пользователя, название … и т. Д.), Вы должны избегать его, только когда вы помещаете его в свой HTML (например, используя htmlentities ).
Хранение его как &
является подходящим методом. Вы можете повторить его или использовать в заявлениях как &
,
Мы постоянно сохраняем '&' в полях базы данных, это нормально (по крайней мере, я никогда не слышал аргумента в противном случае).
Если вы используете только строку на странице HTML, вы можете просто сохранить безопасный HTML &
версия, я полагаю. Я бы предположил, что сохранение «&» и экранирование его при его чтении было бы лучше (в случае, если в будущем вам понадобится использовать строку в контексте, отличном от HTML).
Использовать &
если вы хотите иметь допустимый HTML или избегать проблем, таких как cut©
(браузер показывает его как cut©
).