Maison > base de données > tutoriel mysql > Comment insérer en toute sécurité des guillemets simples dans une base de données PostgreSQL ?

Comment insérer en toute sécurité des guillemets simples dans une base de données PostgreSQL ?

Linda Hamilton
Libérer: 2025-01-23 14:27:11
original
944 Les gens l'ont consulté

How to Safely Insert Single Quotes into a PostgreSQL Database?

Insérer un texte contenant des guillemets simples dans la base de données PostgreSQL

L'insertion de texte contenant des guillemets simples dans une table PostgreSQL nécessite un traitement particulier pour éviter les erreurs de syntaxe.

Échapper aux guillemets simples

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$.

Préparer la valeur

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().

Évitez d'utiliser des connexions

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.

Exemple

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal