一重引用符を含むテキストを PostgreSQL データベースに挿入するには、構文エラーや SQL インジェクションなどのセキュリティの脆弱性を避けるために慎重に処理する必要があります。 このガイドでは、安全で効果的な方法について概説します。
最も簡単な方法は、文字列内で一重引用符を 2 重にすることです。 たとえば、「ユーザーのログ」を挿入するには、次のクエリを使用します:
<code class="language-sql">INSERT INTO test VALUES (1, 'user''s log');</code>
バックスラッシュ () でエスケープすることは可能ですが、あまり推奨されないため、二重引用符が実行できない状況のために予約する必要があります。
複雑な文字列やネストされた引用符を含む状況では、PostgreSQL のドル引用符で囲まれた文字列が優れたソリューションを提供します。 これらの文字列を $$
で囲むと、ドル記号自体 (存在する場合はエスケープする必要があります) を含む特殊文字を簡単に処理できるようになります。
<code class="language-sql">$$escape ' with ''$$</code>
PostgreSQL は、SQL クエリに対して適切に引用符で囲まれた文字列を自動的に生成する quote_literal()
、quote_nullable()
、format()
(%L
指定子付き) などの関数を提供し、手動エスケープを排除してエラーのリスクを軽減します。
<code class="language-sql">format('%L', string_var)</code>
重要なことに、これらの文字列エスケープ手法は、プリペアド ステートメントやパラメータ化されたクエリの代替としてではありません。 これらの方法は、データを SQL コマンド自体から分離することで SQL インジェクション攻撃を防ぐ最も効果的な方法です。 安全なデータベース対話のために、プリペアドステートメントを常に優先してください。
以上が一重引用符で囲まれたテキストを PostgreSQL データベースに安全に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。