Как правильно готовить данные для записи в БД и для вывода на страницу (php+mysql)?

При сохранении в БД данных, введенных в форму, всегда использовал две своих собственных функции, которые готовили данные для записи в базу и готовили данные при выборке их из базы и вывод на страницу. Допустим в функции подготовки данных для базы, использовал php функции экранирования кавычек и опострофов, а так же преобразования html-сущностей в специальные символы, т.е. для "безболезненной" их записи в базу. При выводе этих данных на страницу делал обратную операцию.
Сейчас при переходе на новый хостинг перестали работать php-функции, такие как htmlspecialchars или mysql_escape_string. Как я понял это связано с устареванием этих функций и неподдержкой в новой версии php. Да и не только по этому я уже давно хотел переделать этот свой функционал, т.к. написанные мной функции так же не учитывают автоматическое экранирование символов сервером (т.е. если включена эта настройка) и т.д.
Вопрос в следующем: может ли кто-нибудь подсказать вариант правильной обработки данных, а именно в следующих случаях:
1. Пользователь заполняет обычный текстовый "input" для последующей записи в БД. (в этом случае, насколько я понимаю, необходимо экранировать спецсимволы, а html и другие сущности преобразовывать в символьный вид).
2. Пользователь заполняет не обычную форму а через скрипт какого-либо визуального редактора (типа FCKeditor). Тут, насколько я понимаю, ничего экранировать и преобразовывать на надо, т.к. должна сохраняться вся разметка.
3. Выборка данных из БД и вывод их на страницу, выводя html-сущности как они введены, т.е. если пользователь ввел "Текст1
текст2", то в таком виде эта строка и должна быть выведена на страницу, а не так "текст1" новая строка "текст2".
4. Выборка данных из БД и вывод их на страницу с сохранением свойств html-сущностей, если они были введены в текст.
  • Вопрос задан
  • 2606 просмотров
Пригласить эксперта
Ответы на вопрос 1
Юзай php PDO.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы