L'insertion de texte contenant des guillemets simples dans une table PostgreSQL nécessite un traitement particulier pour éviter les erreurs de syntaxe.
L'échappement SQL standard implique le double des guillemets simples, tels que « journal de l'utilisateur ». PostgreSQL prend également en charge l'utilisation d'échappements de barre oblique inverse, tels que E'user's log'. Cependant, il est généralement recommandé d’utiliser la méthode d’échappement standard entre guillemets doubles.
Si vous devez gérer plusieurs niveaux de guillemets d'échappement ou imbriqués, vous pouvez utiliser des signes dollar pour citer la chaîne. Par exemple, $$escape ' avec ''$$ ou $token$escape ' avec ''$token$.
Lors de l'insertion de valeurs contenant des guillemets simples dans la base de données, elles doivent être correctement citées pour éviter les erreurs. PostgreSQL propose plusieurs fonctions pour cela :
quote_literal()
: échappe aux guillemets simples dans une chaîne et renvoie la valeur citée. quote_nullable()
: similaire à quote_literal()
, mais génère NULL pour une entrée vide. format()
: utilisez le spécificateur de format %L
pour appliquer des guillemets équivalents à quote_nullable()
. L'utilisation de fonctions telles que concat()
et concat_ws()
pour échapper aux guillemets simples n'est pas recommandée car elles n'échappent pas aux guillemets imbriqués ou aux barres obliques inverses.
Pour insérer les valeurs requises dans le tableau 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>
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!