#mysql #html #sql
#mysql #HTML #sql
Вопрос:
Я хочу поместить уменьшенную строку HTML в строку базы данных — имейте в виду, что это может быть довольно большая строка, какой тип структуры я использую из следующих:
Я пробовал LONGTEXT
, но, похоже, это не работает, когда я пытаюсь вставить.
Комментарии:
1. Что это
that doesn't seem to work when I try to insert
значит? Конечно, вы получаете какую-то ошибку, почему вы не упоминаете все, с чем сталкиваетесь, пробуя фрагмент кода? Мы не можем повторить вашу проблему и придумать ответ. Предположение: вы неправильно выводите кавычки и получаете ошибку SQL, которую вы не распечатываете.2. Я думаю, вы правы, я не экранирую кавычки!
Ответ №1:
LONGTEXT
вероятно, чрезмерно — он допускает размеры данных до 4 ГБ.
MEDIUMTEXT
позволяет 16 МБ.
TEXT
допускает 64 КБ.
TINYTEXT
допускает только 255 символов.
Очень немногие HTML-документы будут иметь размер 64 КБ, поэтому a TEXT
должен быть подходящим для вас. Если вы действительно хотите быть в безопасности, выберите MEDIUMTEXT
.
Ссылка: http://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html
Комментарии:
1. Что, если
HTML
содержимое будет хранитьimg
тег сbase64
? Самым безопасным было быLONGTEXT
?
Ответ №2:
Я бы использовал ТЕКСТ. О каких вариантах вы думали?
Комментарии:
1. Просто сохраняя вывод HTML, используя
htmlentities
, конечно, я попробую это сейчас.
Ответ №3:
Текст. Какой из них зависит от размера содержимого HTML, которое вы планируете хранить
Ответ №4:
Я думаю, что tinytext в порядке, если ваша страница не слишком длинная ! ?
Комментарии:
1. @Merianos — это не я проголосовал против вас, но tinytext допускает только 255 символов. Этого действительно недостаточно для безопасного хранения HTML-документа.
2. @Brogrammer большое спасибо, но просто мне хотелось бы знать, что не так с моим ответом, и проголосовал против участника, который проголосовал против меня. Еще раз большое спасибо 🙂
3.
TINYTEXT
не в порядке. По причине, почему это не нормально, проверьте документы MySQL и посмотрите, сколько данныхTINYTEXT
можно хранить. Отклонено, потому что ответ неправильный или точный. «Я думаю», не объясняя причин, почему вы не отвечаете на точные вопросы, это чистая математика.4. Хорошо, вы правы, теперь я вижу, что это был сбой скорости. Я знал, что мне нужно выбрать ТЕКСТ, но я не был уверен в этом на 100%. В любом случае ответ на вопрос
5. -1, tinytext не подходит для HTML. На самом деле это один из худших типов для любого типа хранилища.