カテゴリ リストを作成していますが、アンパサンド記号を MySQL データベースに保存する方法がわかりません。を使用する場合、何か問題/デメリットはありますか'&'
。html 形式で使用する場合との違いはあります'&'
か?
5 に答える
「&」を使用すると、数バイト節約できます。これはMySQLの特殊文字ではありません。&
PHP のメソッドを使用して、後で出力用を簡単に生成できますhtmlspecialchars()
。フィールドが単純な情報を保持することを意図している場合は、後でさまざまな種類のマークアップなどを生成できるため、一般的により柔軟であるため、プレーン テキストのみを使用する必要があります。例外: マークアップは、レイアウトの決定をテキストと共に保存したいユーザーによって作成されます (リッチテキスト入力の場合など)。入力にタグなどがある場合は&
、一貫性のために使用することをお勧めします。
&
DB のフィールドに HTML が含まれている場合にのみ ( のように)保存する必要 があります<span class="bold">some text</span> & more
。その場合、XSSには十分注意する必要があります。
フィールドに一般的なデータ (ユーザー名、タイトルなど) が含まれている場合は、HTML に配置するときにのみエスケープする必要があります (たとえば、 htmlentitiesを使用)。
'&' は常にデータベース フィールドに保存されますが、そうしても問題ありません (少なくとも、それ以外の議論は聞いたことがありません)。
&
HTMLページでのみ文字列を使用している場合は、HTMLセーフバージョンを保存するだけでよいと思います。ただし、「&」を保存して、読むときにエスケープすることをお勧めします(将来、HTML 以外のコンテキストで文字列を使用する必要がある場合に備えて)。
そのまま保管する&
のが適切な方法です。エコーするか、ステートメントで として使用できます&
。
&
有効な HTML を使用する場合や、 cut©
(ブラウザで と表示されるcut©
) などの問題を回避する場合に使用します。