一重引用符を含むテキストを 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 サイトの他の関連記事を参照してください。