Подтвердить что ты не робот

Добавление разрыва строки в тексте MySQL INSERT INTO

Может ли кто-нибудь сказать мне, как добавить новую строку в текст, который я вхожу в таблицу MySql?

Я попытался использовать '\n' в строке, введенной мной с помощью оператора INSERT INTO, но '\n' отображается как есть.

На самом деле я создал таблицу в MS Access с некоторыми данными. MS Access добавляет новую строку с помощью '\n'. Я преобразовываю данные таблицы MS Access в MySql. Но когда я конвертирую, '\n' игнорируется, и весь текст отображается в одной строке, когда я показываю его из таблицы MySql в форме PHP.

Может ли кто-нибудь сказать мне, как MySQL может добавить новую строку в текст? Ожидая ответа, спасибо!

4b9b3361

Ответ 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/>')