Как хранить <textarea>данных, а также бежать и возвращать данные - PullRequest
0 голосов
/ 11 июля 2011

Какой самый лучший маршрут для хранения данных в MySQL. С MySQL я должен просто использовать, TEXT в качестве моего типа поля?

Также при использовании mysql_real_escape_string () с возвращаемыми значениями \ r \ n. Но должен ли я запускать htmlentities () на нем после этого?

А потом, когда я возвращаю данные на экран, который я должен использовать, NL2BR ()?

Просто пытаюсь найти лучший маршрут для хранения этой информации.

Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 11 июля 2011

TEXT или TINYTEXT или что-либо подобное должно подойти для хранения данных ASCII от пользователя. Если вам не нужно много места, вы можете подумать о VARCHAR

Я думаю, что mysql_real_escape_string() экранирует символы, которые могут поставить под угрозу безопасность SQL-запроса (одинарные кавычки, двойные кавычки и т. Д.), Но не делают намного больше.

htmlentities() преобразует зарезервированные html-символы, такие как <и>, в их html-кодированный эквивалент, & lt; и & gt; соответственно. Эти символы не опасны для запросов SQL, поэтому вам, вероятно, не нужно избегать их, если только вы не хотите отобразить введенный пользователем тег HTML в виде текста и не допустить его интерпретацию как HTML.

NL2BR(), вероятно, также не требуется.

Самое главное, ваше решение о том, когда использовать каждую из этих функций, будет зависеть от вашего конечного приложения. Вы можете нуждаться / хотеть некоторые, но не другие (хотя вы обязательно должны использовать mysql_real_escape_string())

0 голосов
/ 11 июля 2011

Действительно зависит от того, что вы пытаетесь сохранить. Для таких вещей, как имена пользователей, пароли и т. Д. ... тогда вы можете использовать varchar. Но если вы храните длинный текст, такой как новостные сообщения или HTML-данные, то вы можете использовать ТЕКСТ или ДОЛГОЙ ТЕКСТ (в зависимости от того, как долго это будет).

Вы должны ВСЕГДА использовать mysql_real_escape_string () при вставке в БД. Если вы выводите HTML из БД, вы можете захотеть запустить htmlentities или html_specialchars, чтобы убедиться, что вы не выводите введенный пользователем javascript, который может перенаправить ваших пользователей на сайты хакеров и тому подобное.

Еще одна идея заключается в том, что вы можете избежать использования данных с помощью htmlentities перед вставкой в ​​БД, но это ваш выбор.

NL2BR отлично подходит для принудительного применения всех \ r \ n к
тегам.

Итак, похоже, что вы на правильном пути ...

...