ホームページ >データベース >mysql チュートリアル >SQL INSERT および SELECT ステートメントでアポストロフィをエスケープするにはどうすればよいですか?
SQL データ挿入におけるアポストロフィの処理
アポストロフィを含むデータを SQL データベースに直接挿入すると、エラーが発生する可能性があります。 アポストロフィは文字列の区切り文字として機能するため、文字列が途中で終了する可能性があります。 これを回避するには、SQL クエリ内のアポストロフィをエスケープする必要があります。
正しい方法:
<code class="language-sql">INSERT INTO Person (First, Last) VALUES ('Joe', 'O''Brien');</code>
「O'Brien」内のアポストロフィが 2 つ (''
) によってどのようにエスケープされるかに注目してください。これは、それが区切り文字ではなく文字列の一部であることをデータベースに明確に示します。
SELECT ステートメントでのアポストロフィの処理:
同じエスケープ手法が SELECT
クエリにも適用されます。
<code class="language-sql">SELECT First, Last FROM Person WHERE Last = 'O''Brien';</code>
なぜ逃げるの?
SQL における文字列境界としてのアポストロフィの役割にはエスケープが必要です。 2 倍にすると、データベースがそれをデータとして正しく解釈し、文字列が途中で終了するのを防ぎます。
プログラミングにおける自動エスケープ:
生のクエリで SQL を直接操作するには、手動でアポストロフィ エスケープを行う必要があります。ただし、ほとんどのプログラミング言語とデータベース フレームワークには、エスケープを自動的に処理し、SQL インジェクションの脆弱性を防ぐ組み込み関数が用意されています。 これらの関数を使用することを強くお勧めします。
以上がSQL INSERT および SELECT ステートメントでアポストロフィをエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。