MySqlテーブルに入力したテキストに新しい行を追加する方法を教えてもらえますか?
'\n'
ステートメントで入力した行でINSERT INTO
を使用しようとしましたが、'\n'
はそのまま表示されます。
実際、MS Accessにいくつかのデータを含むテーブルを作成しました。 MS Accessは'\n'
で新しい行を追加します。 MS AccessテーブルデータをMySqlに変換しています。しかし、変換すると、PHPフォームのMySqlテーブルから表示すると、'\n'
は無視され、すべてのテキストが1行で表示されます。
MySQLでテキストに新しい行を追加する方法を教えてください。応答を待っています、ありがとう!!
複数行にまたがる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'));
実際のSQLクエリでは、改行を追加するだけです
INSERT INTO table (text) VALUES ('hi this is some text
and this is a linefeed.
and another');
記録のために、既存のデータに改行を追加したかったので、\n
が正常に機能しました...
サンプルデータ:
Sentence. Sentence. Sentence
やった:
UPDATE table SET field = REPLACE(field, '. ', '.\r\n')
ただし、\r
および\n
のみでも機能しました。
INSERT INTO test VALUES('a line\nanother line');
\n
はここで正常に動作します
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
INSERT INTO myTable VALUES("First line\r\nSecond line\r\nThird line");
まず、PHPフォームに表示する場合、メディアはHTMLであるため、<br />
タグで新しい行がレンダリングされます。ページのソースHTMLを確認します。改行としてレンダリングされた新しい行がある可能性があります。この場合、問題は単に、テキストをWebブラウザーに出力するために翻訳することです。
データベースに挿入する前に、\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
SQLまたはMySQLでは、char
またはchr
関数を使用して、キャリッジリターンラインフィードのASCII 13(\n
相当)を入力できます。しかし、@ David Mが述べたように、HTMLにこのブレークを表示させたいと考えている可能性が高く、brが機能します。