MySQL ワイルドカードのエスケープ: 誤解の明確化
MySQL は、クエリでのパターン マッチングを容易にするために特定の文字をワイルドカードとして利用します。ただし、特定のコンテキストでは、正確で一貫性のある SQL ステートメントを確保するために、これらのワイルドカードのエスケープの微妙な点を理解することが重要です。
文字列リテラルの % と _ のエスケープ
逆当初の想定では、MySQL ワイルドカード % と _ を通常の文字列リテラルに割り当てるときに、addcslashes を使用してエスケープする必要はありません。この目的には、mysql_real_escape_string 関数が適しています。
LIKE 式におけるエスケープのニュアンス
LIKE ステートメントの文字列を準備する場合は、より微妙なアプローチが必要です。 LIKE 式では、エスケープ文字自体とともに、% と _ の両方が特殊文字になります。誤解を避けるために、2 つのレベルのエスケープを実行することが重要です:
明らかな不一致への対処
アスタリスク (", '') が、これは、% と _ 以外の文字はエスケープすべきではないという ANSI SQL からの逸脱です。
LIKE エスケープに関する移植性の考慮事項
データベース間の移植性を確保するには、LIKE ... ESCAPE ... 構造を使用して代替エスケープ文字を指定することをお勧めします。これにより、デフォルトの動作がオーバーライドされ、MySQL の ANSI SQL からの逸脱への依存が排除されます。
以上がMySQL ワイルドカードを適切にエスケープする方法: いつ、そしてなぜ?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。