ホームページ > データベース > mysql チュートリアル > MySQL クエリで特殊文字を適切にエスケープするにはどうすればよいですか?

MySQL クエリで特殊文字を適切にエスケープするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-14 14:18:10
オリジナル
959 人が閲覧しました

How Do I Properly Escape Special Characters in MySQL Queries?

MySQL クエリでの特殊文字のエスケープ

特殊文字を含む MySQL クエリを構築する場合、構文エラーを避けるために特殊文字をエスケープすることが重要です。特殊文字は悪意のある目的に悪用される可能性があるため、ユーザー入力を扱う場合、これはさらに重要になります。

次の例を考えてみましょう。

select * from tablename where fields like "%string "hi"  %";
ログイン後にコピー

このクエリでは、二重引用符で囲まれています。文字列「hi」は文字列自体の一部として解釈され、構文エラーが発生します。

エスケープ要件

必要な特定のエスケープ シーケンスは、使用されている特殊文字によって異なります。 MySQL は次のエスケープ シーケンスを認識します:

  • ' ' - ASCII NUL (0x00) 文字
  • ''' - 一重引用符文字
  • '"' - 二重引用符文字
  • 'b' - バックスペース文字
  • 'n' -改行 (ラインフィード) 文字
  • 'r' - 復帰文字
  • 't' - タブ文字
  • 'Z' - ASCII 26 (Control-Z)
  • '' - バックスラッシュ文字
  • '%' - パーセント文字
  • '_' - アンダースコア文字

ソリューション

クエリ例の二重引用符をエスケープするには、クエリを次のように記述する必要があります。次のように:

select * from tablename where fields like '%string \"hi\" %';
ログイン後にコピー

または、一重引用符を文字列として使用できます。区切り文字:

select * from tablename where fields like '%string ''hi'' %';
ログイン後にコピー

このアプローチでは、文字列内の単一引用符をエスケープする必要がなくなるため、エスケープが簡素化されます。

以上がMySQL クエリで特殊文字を適切にエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート