Maison >base de données >tutoriel mysql >Comment puis-je insérer correctement du texte avec des guillemets simples dans PostgreSQL ?

Comment puis-je insérer correctement du texte avec des guillemets simples dans PostgreSQL ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-23 14:23:10477parcourir

How Can I Properly Insert Text with Single Quotes into PostgreSQL?

Insérer du texte contenant des guillemets simples dans PostgreSQL

L'insertion de valeurs contenant des guillemets simples peut être délicate dans PostgreSQL. Il existe cependant des moyens de garantir une évasion adéquate.

Utiliser des guillemets simples

Pour insérer des valeurs contenant des guillemets simples, doublez-les dans la chaîne :

<code class="language-sql">INSERT INTO test VALUES (1, 'user''s log');</code>

Échapper avec une barre oblique inverse

Dans les versions de PostgreSQL où standard_conforming_strings est défini sur off, ou lorsque la syntaxe de chaîne d'échappement POSIX est activée à l'aide du préfixe E, les guillemets simples peuvent être échappés à l'aide de barres obliques inverses :

<code class="language-sql">INSERT INTO test VALUES (1, E'user\'s log');</code>

Utilisez les signes dollar pour citer des chaînes

Une autre option, en particulier pour les chaînes complexes contenant plusieurs niveaux d'échappement, consiste à citer la chaîne avec des signes dollar :

<code class="language-sql">INSERT INTO test VALUES (1, $token$escape ' with ''$token$);</code>

Fonctions pour citer des chaînes

PostgreSQL fournit des fonctions pour citer correctement les chaînes :

  • quote_literal() ou quote_nullable() : citez une chaîne ou renvoyez NULL pour une entrée vide.
  • %L avec le spécificateur format() : Équivalent à quote_nullable().

Par exemple :

<code class="language-sql">INSERT INTO test VALUES (1, format('%L', 'user''s log'));</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn