Добавление разрыва строки в тексте MySQL INSERT INTO
Может ли кто-нибудь сказать мне, как добавить новую строку в текст, который я вхожу в таблицу MySql?
Я попытался использовать '\n'
в строке, введенной мной с помощью оператора INSERT INTO
, но '\n'
отображается как есть.
На самом деле я создал таблицу в MS Access с некоторыми данными. MS Access добавляет новую строку с помощью '\n'
. Я преобразовываю данные таблицы MS Access в MySql. Но когда я конвертирую, '\n'
игнорируется, и весь текст отображается в одной строке, когда я показываю его из таблицы MySql в форме PHP.
Может ли кто-нибудь сказать мне, как MySQL может добавить новую строку в текст? Ожидая ответа, спасибо!
Ответы
Ответ 1
Если вы в порядке с командой SQL, которая распространяется по нескольким строкам, то предложение oedo является самым простым:
INSERT INTO mytable (myfield) VALUES ('hi this is some text
and this is a linefeed.
and another');
У меня была ситуация, когда было предпочтительнее иметь оператор SQL в одной строке, поэтому я обнаружил, что комбинация CONCAT_WS()
и CHAR()
работал у меня.
INSERT INTO mytable (myfield) VALUES (CONCAT_WS(CHAR(10 using utf8), 'hi this is some text', 'and this is a linefeed.', 'and another'));
Ответ 2
в реальном SQL-запросе вы просто добавляете новую строку
INSERT INTO table (text) VALUES ('hi this is some text
and this is a linefeed.
and another');
Ответ 3
Для записи я хотел добавить некоторые разрывы строк в существующие данные, и я получил \n
для работы нормально...
Пример данных:
Sentence. Sentence. Sentence
Я сделал:
UPDATE table SET field = REPLACE(field, '. ', '.\r\n')
Однако он также работал только с \r
и просто \n
.
Ответ 4
INSERT INTO test VALUES('a line\nanother line');
\n
просто отлично работает здесь
Ответ 5
Прежде всего, если вы хотите, чтобы он отображался в форме PHP, среда представляет собой HTML, и поэтому новая строка будет отображаться тегом <br />
. Проверьте исходный HTML-адрес страницы - возможно, у вас есть новая строка, отображаемая как разрыв строки, и в этом случае ваша проблема просто заключается в переводе текста для вывода в веб-браузер.
Ответ 6
-
Вы должны заменить \n
на <br/>
перед вставкой в базу данных.
$data = str_replace("\n", "<br/>", $data);
В этом случае в таблице базы данных вместо новой строки вы увидите <br/>
.
например.
First Line
Second Line
будет выглядеть так:
First Line<br/>Second Line
-
Другой способ просмотра данных с помощью новой строки. Сначала прочитайте данные из базы данных. А затем замените \n
на <br/>
например.
echo $data;
$data = str_replace("\n", "<br/>", $data);
echo "<br/><br/>" . $data;
выход:
First Line Second Line
First Line
Second Line
Здесь вы найдете информацию о функции str_replace(): http://php.net/manual/en/function.str-replace.php
Ответ 7
INSERT INTO myTable VALUES("First line\r\nSecond line\r\nThird line");
Ответ 8
В большинстве случаев MySQL может записывать линейные разрывы, но проблема в том, что вам нужны теги <br />
в фактической строке вашего браузера, чтобы показывать перерывы. Поскольку вы упомянули PHP, вы можете использовать функцию nl2br()
для преобразования символа строки ( "\n
" ) в тег <br />
.
Просто используйте его так:
<?php
echo nl2br("Hello, World!\n I hate you so much");
?>
Вывод (в формате HTML):
Hello, World!<br>I hate you so much
Здесь ссылка на руководство: http://php.net/manual/en/function.nl2br.php
Ответ 9
В SQL или MySQL вы можете использовать функции char
или chr
для ввода в ASCII 13 для канала возврата каретки, \n
equivilent. Но, как заявил @David M, вы, скорее всего, хотите, чтобы HTML показывал этот перерыв, а br - это то, что будет работать.
Ответ 10
Мне кажется, что вы смешиваете содержимое таблицы с каким-то конкретным способом рендеринга этого содержимого.
Предполагаю, что вы используете клиент командной строки (shell), приглашение mysql
для ввода и отображения текста в этом столбце. Я также предполагаю, что вы \n хранится как новая строка и что это только то, как оно представлено, что вызывает ваше замешательство.
Попробуйте использовать GUI-инструмент для доступа к вашим данным MySQL.
Ответ 11
Вы можете просто заменить все \n
тегом <br/>
так, чтобы при отображении страницы он прерывал строку.
UPDATE table SET field = REPLACE(field, '\n', '<br/>')