Maison > développement back-end > Golang > le corps du texte

Comment échapper aux caractères spéciaux pour une correspondance de modèle précise dans PostgreSQL ?

Susan Sarandon
Libérer: 2024-11-20 04:30:02
original
420 Les gens l'ont consulté

How to Escape Special Characters for Accurate Pattern Matching in PostgreSQL?

Échapper des chaînes pour la correspondance de modèles dans PostgreSQL

Pour faire correspondre avec précision les modèles dans PostgreSQL où la chaîne fournie par l'utilisateur peut contenir des caractères de modèle spéciaux comme % , pensez à échapper ces caractères pour garantir des correspondances précises. Alternativement, l'application peut gérer le processus d'échappement.

Dans PostgreSQL, les caractères comme % et _ doivent être cités à l'aide du , mais cela peut être personnalisé avec la clause ESCAPE. Pour faire correspondre le caractère littéralement, il doit être cité deux fois.

Par exemple, pour faire correspondre le modèle 'john%node1^node2.uucp@' avec ^ comme caractère d'échappement, utilisez la requête suivante :

... WHERE field LIKE 'john^%node1^^node2.uucp@%' ESCAPE '^'
Copier après la connexion

Cependant, lorsque standard_conforming_strings est désactivé (PG 9.1 l'a activé par défaut), il est utilisé à d'autres fins. De plus, les guillemets côté client peuvent être nécessaires dans les scénarios d'injection.

Pour une gestion générique dans Go, en tenant compte à la fois des chaînes_conforming_standard et des caractères de guillemets alternatifs, la requête suivante peut être utilisée :

db.Query("SELECT * from USERS where name like replace(replace(replace(,'^','^^'),'%','^%'),'_','^_') ||'%' ESCAPE '^'",
     variable_user_input);
Copier après la connexion

Ceci gère l'échappement et le remplacement des caractères spéciaux côté serveur, empêchant l'injection SQL et garantissant une correspondance de modèle précise.

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