web-dev-qa-db-ja.com

MySQL INSERT INTOテキストに改行を追加する

MySqlテーブルに入力したテキストに新しい行を追加する方法を教えてもらえますか?

'\n'ステートメントで入力した行でINSERT INTOを使用しようとしましたが、'\n'はそのまま表示されます。

実際、MS Accessにいくつかのデータを含むテーブルを作成しました。 MS Accessは'\n'で新しい行を追加します。 MS AccessテーブルデータをMySqlに変換しています。しかし、変換すると、PHPフォームのMySqlテーブルから表示すると、'\n'は無視され、すべてのテキストが1行で表示されます。

MySQLでテキストに新しい行を追加する方法を教えてください。応答を待っています、ありがとう!!

64
Muhammed Umer

複数行にまたがるSQLコマンドで問題なければ、 oedo's の提案が最も簡単です。

INSERT INTO mytable (myfield) VALUES ('hi this is some text
and this is a linefeed.
and another');

SQLステートメントをすべて1行にするのが望ましい状況になったので、 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'));
67
Don Kirkby

実際のSQLクエリでは、改行を追加するだけです

INSERT INTO table (text) VALUES ('hi this is some text
and this is a linefeed.
and another');
31
chris

記録のために、既存のデータに改行を追加したかったので、\nが正常に機能しました...

サンプルデータ:

Sentence. Sentence. Sentence

やった:

UPDATE table SET field = REPLACE(field, '. ', '.\r\n')

ただし、\rおよび\nのみでも機能しました。

20
Matt
INSERT INTO test VALUES('a line\nanother line');

\nはここで正常に動作します

11
xtds

MySQLはほとんどの場合、改行を正常に記録できますが、問題は、ブラウザーが改行を表示するために実際の文字列に<br />タグが必要なことです。 PHPについて説明したので、nl2br()関数を使用して、改行文字( "\n")をHTML <br />タグに変換できます。

次のように使用します。

<?php
echo nl2br("Hello, World!\n I hate you so much");
?>

出力(in HTML):

Hello, World!<br>I hate you so much

マニュアルへのリンクは次のとおりです。 http://php.net/manual/en/function.nl2br.php

10
starleaf1
INSERT INTO myTable VALUES("First line\r\nSecond line\r\nThird line");
5
nancy alajarmeh

まず、PHPフォームに表示する場合、メディアはHTMLであるため、<br />タグで新しい行がレンダリングされます。ページのソースHTMLを確認します。改行としてレンダリングされた新しい行がある可能性があります。この場合、問題は単に、テキストをWebブラウザーに出力するために翻訳することです。

4
David M
  1. データベースに挿入する前に、\n<br/>に置き換える必要があります。

    $data = str_replace("\n", "<br/>", $data);

    この場合、データベーステーブルには、改行ではなく<br/>が表示されます。

    例えば.

    First Line
    Second Line

    次のようになります。

    First Line<br/>Second Line

  2. 新しい行でデータを表示する別の方法。最初にデータベースからデータを読み取ります。そして、\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

1
Airful

SQLまたはMySQLでは、charまたはchr関数を使用して、キャリッジリターンラインフィードのASCII 13(\n相当)を入力できます。しかし、@ David Mが述べたように、HTMLにこのブレークを表示させたいと考えている可能性が高く、brが機能します。

0
RandyMorris