12
votes

Comment insérer des instructions contenant des apostrophes dans la base de données SQLITE

Dans mon iPhone APP, j'utilise une base de données SQLite. J'ai besoin de stocker le texte dans la base de données. Le texte contient des apostrophes.

Par exemple: xxx

Comment stocker ce type d'instructions dans la base de données SQLITE?


1 commentaires

Les données de base ne supportent-elles pas les relevés paramétrés?


3 Réponses :


21
votes

C'est quelque chose que je passe dans SQL Server et MySQL aussi. Vous devez absolument utiliser des requêtes SQL paraméturées

voir Cette page pour des exemples dans de nombreuses langues.

i décourage fortement l'utilisation de chaînes littérales dans la déclaration de mise à jour. Utilisez des requêtes paramétrées. Il n'y a aucune raison de compromettre la sécurité

Vous pouvez écrire une fonction qui remplace chaque instance de caractère 'avec' '

http://www.kamath.com/codelibrary/cl003_apostrophe.asp


3 commentaires

@Ranhirucoray est-ce que cela s'applique également à la mise à jour, lorsque je fais une évasion, les mises à jour inserdront les deux '' au lieu d'en utiliser un pour échapper à l'autre


Oui ça marche. Cependant, je décourage fortement l'utilisation de chaînes littérales dans la déclaration de mise à jour. Utilisez des requêtes paramétrées. Il n'y a aucune raison de compromettre la sécurité.


Cela ne répond pas à la question, car vous avez toujours le problème si vous utilisez des valeurs et que le lien ne parle que de la manière d'utiliser les valeurs, il n'est pas mentionné sur la manipulation de l'apostrophe.



6
votes

remplacer simplement 'caractères à `:) xxx


0 commentaires

0
votes

avec python et sqlite3 j'ai constaté que la ligne suivante a fonctionné parfaitement (remplaçant 'avec' ') xxx

la chaîne peut alors être concaténée dans une commande de mise à jour

La ligne est stockée et affichée correctement. Cela fonctionne également bien avec Grafana.

Je ne suis pas encore sûr si cela est spécifique au module SQLITE3 Python ou si elle peut être généralisée


0 commentaires