Как правильно хранить разрывы строк из textarea в базе данных mySQL? - PullRequest
4 голосов
/ 09 марта 2011

У меня возникла проблема с отправкой и хранением контента textarea, но я не смог найти правильного решения.

У меня есть форма с полем textarea, которая называется "description".

Когда я отправляю форму с многострочным текстом, например

Строка 1
Строка 2

Строка 3

Он сохраняется в базе данных MySQL с гораздо большим количеством новых строк. Это становится: -

Строка 1

Строка 2


Строка 3

когда я проверяю базу данных с помощью phpmyadmin.

Я пробовал оба типа VARCHAR и TEXT, это одно и то же. Что мне нужно сделать для точного хранения содержимого textarea?

Соответствующие строки codeigniter aRow [$ strField] = strip_tags ($ this-> input-> post ($ strField)); $ this-> db-> insert ($ this-> strTable, $ aRow);

$ strField будет моим полем textarea, а вставка является функцией CI.

Ответы [ 3 ]

7 голосов
/ 09 марта 2011

Хорошо, я нашел ответ. Я использую CI 2.0, и это уже существующая ошибка, о которой уже сообщалось. https://bitbucket.org/ellislab/codeigniter/issue/332/newlines-in-textareas-are-duplicated

Быстрое исправление, как показано ниже (ищите файл в /system/core/Input.php)

//$str = str_replace(array( "\r\n", "\r"), PHP_EOL, $str);
$str = preg_replace('/(?:\r\n|[\r\n])/', PHP_EOL, $str);

Надеюсь, это поможет кому-то там.

1 голос
/ 09 марта 2011

Кажется, что новая строка добавляется после каждой новой строки. Это связано с тем, как данные вставляются в базу данных. Хотите поделиться этим кодом?

0 голосов
/ 09 марта 2011

попробуйте использовать \ n в базе данных, а при показе записи используйте nl2br()

для более

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...