ホームページ > データベース > mysql チュートリアル > PostgreSQL データベースに一重引用符を安全に挿入するにはどうすればよいですか?

PostgreSQL データベースに一重引用符を安全に挿入するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-23 14:27:11
オリジナル
945 人が閲覧しました

How to Safely Insert Single Quotes into a PostgreSQL Database?

一重引用符を含むテキストを PostgreSQL データベースに挿入します

一重引用符を含むテキストを PostgreSQL テーブルに挿入するには、構文エラーを避けるために特別な処理が必要です。

一重引用符をエスケープします

標準 SQL エスケープには、「user''s log」などの一重引用符を二重にすることが含まれます。 PostgreSQL は、E'user's log' などのバックスラッシュ エスケープの使用もサポートしています。ただし、一般的には、標準の二重引用符エスケープ方法を使用することをお勧めします。

複数レベルのエスケープまたはネストされた引用符を処理する必要がある場合は、ドル記号を使用して文字列を引用できます。たとえば、$$escape ' と ''$$、または $token$escape ' と ''$token$ です。

値を準備します

一重引用符を含む値をデータベースに挿入する場合、エラーを防ぐために値を正しく引用符で囲む必要があります。 PostgreSQL は、このためにいくつかの関数を提供します。

  • quote_literal(): 文字列内の単一引用符をエスケープし、引用符で囲まれた値を返します。
  • quote_nullable(): quote_literal() と似ていますが、空の入力に対して NULL を出力します。
  • format(): %L 書式指定子を使用して、quote_nullable() と同等の引用符を適用します。

接続の使用を避ける

concat()concat_ws() などの関数を使用して一重引用符をエスケープすることは、ネストされた引用符やバックスラッシュをエスケープしないため、お勧めできません。

必要な値を test テーブルに挿入するには:

<code class="language-sql">insert into test values (1, quote_literal('user''s log'));
insert into test values (2, quote_literal('my user''s'));
insert into test values (3, quote_literal('customer''s'));</code>
ログイン後にコピー

以上がPostgreSQL データベースに一重引用符を安全に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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