Двойная вставка mysql_real_escape_string новых символов строки. Как получить новые разрывы строк?

У меня есть поле textarea, которое вставлено в базу данных mysql, которая может содержать разрывы строк. Данные текстовой области случайно прошли через две партии функций mysql_real_escape_string. Поэтому бит разрыва строки данных поля теперь сохраняется как «\ r \ n» вместо фактической новой строки, так как он был дважды экранирован?

Теперь, когда вы вернетесь в поле textarea html для редактирования, вместо новой строки отображается «\ r \ n».

Вопрос: Как исправить ситуацию, чтобы они снова стали новыми линиями?

Вы, вероятно, избегаете использование mysql_real_escape строки дважды – как входной фильтр (неверный!) И как подготовка данных SQL. Вы должны избавиться от первого.

Или один раз, как входной фильтр, а затем используйте подготовленные инструкции для запроса. Избавьтесь от первого.

Вы должны обязательно исправить ситуацию, которая ведет к двойному экранированию.

Быстрое исправление для уже обработанного содержимого

 str_replace("\\r\\n", "\r\n"); 

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

Попробуйте этот код

 $tval = str_replace("\\r\\n", "\r\n",mysql_real_escape_string(trim($tval)));