2017-06-21 14 views
-1

これは重複した質問のように見えるかもしれませんが、すべての回答は複数の解決策を指しています。これは事例ですか、単に環境設定/使用法ですか?ありますか?MySQLのテキストセルに改行/特殊文字を格納する必要がありますか?

すべてのオプションを使用して周りを回りました。 (挿入後&前) nl2brstripslashesstr_replaceMagic Quotes

テキストのブロックを見たとき、私は私のphpMyAdminのセルに何を見てする必要があります。

  1. This is some text Some text
  2. This is some text<br>Some text
  3. This is some text<br />Some text
  4. This is some text\r\nSome text
  5. ?

単に参照するには、新しい行、特殊文字と引用符は、それが通りであるかどうか、オンデマンドで正しく表示プレーンテキストまたはテキストエリア内など私はそれが間違っているように感じる。

+0

です。プリペアドステートメントを使用しているときにそれらを保存し、必要なメディアに出力するときにのみ変換/エンコードします。 – jeroen

答えて

1

まず、原則です。データベースは、データのリポジトリと見なす必要があります。フォーマット用ではありません。

VARCHAR/TEXT<br>を使用すると、HTMLページにロックされます。

一方、文字列に改行を入れることは妥当です。この場合、となり、それは\nとなります。 PHPを使ってWebページに表示する必要がある場合は、nl2br()を使用してください。あなたが何か違うことをする必要があるならば、あなたは少なくともシンプルで「標準的な」もの、つまり一文字の\nで始まっています。

同様に、htmlentities(&...;)も保存しないでください。代わりに文字セットを正しく設定し、utf8mb4を使用してください。 UTF-8は今日、ほとんどのソフトウェアが国際文字を扱うための「正しい」方法として一般に認められています。何かがそれから逸脱した場合は、あなたが始まっている少なくとも「標準的な」エンコーディングがあります。

INSERTステートメントを作成するときには、文字列をエスケープ(または準備/バインドを使用)する必要があります。これは引用された文字列を含むすべての言語の事実です。しかし、SELECTingのデータを入力すると、エスケープを解除する必要はありません。

関連する問題