ホームページ >データベース >mysql チュートリアル >一重引用符で囲まれたテキストを PostgreSQL データベースに安全に挿入する方法

一重引用符で囲まれたテキストを PostgreSQL データベースに安全に挿入する方法

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-23 14:17:10726ブラウズ

How to Safely Insert Text with Single Quotes into a PostgreSQL Database?

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

一重引用符を含むテキストを PostgreSQL データベース テーブルに挿入するのは難しい場合があり、直接挿入しようとするとエラーが発生する可能性があります。これを効果的に処理するには、必ずエスケープ メカニズムを使用して、データベースが一重引用符を正しく解釈できるようにしてください。

単一引用符文字列の挿入の問題:

<code class="language-sql">insert into test values (1,'user's log');</code>

ここでは、文字列内の単一引用符のバランスが取れていないためにエラーが発生します。これを修正するには、次のように単一引用符を二重にしてエスケープします。

<code class="language-sql">insert into test values (1,'user''s log');</code>

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

このメソッドは、PostgreSQL で一重引用符をエスケープするためによく使用されます。引用符を 2 つ重ねることで、引用符を区切り文字としてではなく文字列の一部として扱う必要があることをデータベースに伝えます。または、バックスラッシュ 文字を使用して一重引用符をエスケープすることもできます:

<code class="language-sql">insert into test values (1,E'user\'s log');</code>

ドル相場文字列:

複数レベルのエスケープ文字列や複雑な文字列を扱う場合は、ドル引用符で囲まれた文字列を使用すると、よりクリーンで読みやすいソリューションが提供されます。ドル記号を含む文字列を引用するには、文字列をドル記号 ($) で囲みます:

<code class="language-sql">insert into test values (1,$'user's log'$);</code>

値をエスケープする関数:

PostgreSQL は、値をエスケープするための特別な関数も提供します。これらの関数には次のものが含まれます:

  • quote_literal(): クエリで使用される文字列をエスケープします。
  • quote_nullable(): NULL を引用符で囲まれていない文字列として出力することで、文字列をエスケープして空の入力を処理します。

例:

<code class="language-sql">insert into test values (1,quote_literal('user's log'));</code>

SQL エスケープ メカニズムを使用します:

はい、SQL エスケープ メカニズムを使用して、一重引用符を含むテキストを PostgreSQL に挿入することができます。一重引用符を二重にしたり、文字列をドル記号で囲んだりするなど、上で説明した方法は、有効な SQL エスケープ メカニズムとみなされます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。