5

入力テキストエリアがあり、ユーザーがデータベースのテキストエリアで作成した改行を保存して、入力テキストと同じように出力テキストをエコーするようにしたいと考えています。

例えば:

Some text some text some text some text


new line some text some text new line 

new line some text new line some text

これは私の現在のアップロードスクリプトです:

$sql = "insert into people (price, contact, category, username, fname, lname, expire, filename) values (:price, :contact, :category, :user_id, :fname, :lname, now() + INTERVAL 1 MONTH, :imagename)";
$q = $conn->prepare($sql) or die("failed!");
$q->bindParam(':price', $price, PDO::PARAM_STR);
$q->bindParam(':contact', $contact, PDO::PARAM_STR);
$q->bindParam(':category', $category, PDO::PARAM_STR);
$q->bindParam(':user_id', $user_id, PDO::PARAM_STR);
$q->bindParam(':fname', $fname, PDO::PARAM_STR);
$q->bindParam(':lname', $lname, PDO::PARAM_STR);
$q->bindParam(':imagename', $imagename, PDO::PARAM_STR);
$q->execute();
4

4 に答える 4

31

テキスト領域の改行は、 などの改行文字\nです。これらは HTML でレンダリングされないため、単に出力をエコーし​​ても表示されません。<textarea>またはタグ内でエコーするか、<pre>を使用しnl2br()て新しい行をタグに置き換え<br>て、HTML として表示できるようにすることができます。

于 2012-10-04T14:33:13.530 に答える
2

を使用して、保存する前に改行をエスケープできますmysql_real_escape_string

ドキュメントはこちら: http://php.net/manual/en/function.mysql-real-escape-string.php

于 2012-10-04T14:34:38.090 に答える
1

\n to <br>また、replace を使用して、javascript を使用してテキストを分割することもできます。

str.replace("\n", "<br />","g");
于 2012-10-04T14:36:21.277 に答える
0

私は同じ問題を抱えていましたが、これは現在機能しています:

$query = "UPDATE your_table 
         SET your_text_field = 'line 1'" . '\n' . "'line2' 
         WHERE your_id_field = " . $id . "';";
于 2015-01-09T16:37:12.383 に答える