J'ai écrit le schéma de la base de données (une seule table jusqu'à présent) et les instructions INSERT pour cette table dans un fichier. Ensuite, j'ai créé la base de données comme suit:
$ sqlite3 newdatabase.db
SQLite version 3.4.0
Enter ".help" for instructions
sqlite> .read ./schema.sql
SQL error near line 16: near "s": syntax error
La ligne 16 de mon fichier ressemble à ceci:
INSERT INTO table_name (field1, field2) VALUES (123, 'Hello there\'s');
Le problème est le caractère d'échappement pour un guillemet simple. J'ai également essayé de double échapper le guillemet simple (en utilisant \\\'
au lieu de \'
), mais cela n'a pas fonctionné non plus. Qu'est-ce que je fais mal?
INSERT INTO table_name (field1, field2) VALUES (?, ?)
et les valeurs seraient fournies directement (et sans substitutions).Je crois que vous voudriez vous échapper en doublant le guillemet simple:
la source
pour remplacer tout (') dans votre chaîne, utilisez
exemple:
la source
Juste au cas où vous auriez une boucle ou une chaîne json à insérer dans la base de données. Essayez de remplacer la chaîne par un guillemet simple. voici ma solution. exemple si vous avez une chaîne qui contient un guillemet simple.
cela fonctionne pour moi en c # et java
la source
En C #, vous pouvez utiliser ce qui suit pour remplacer le guillemet simple par un guillemet double:
Et la sortie sera:
Et, si vous travaillez directement avec Sqlite; vous pouvez travailler avec un objet au lieu de la chaîne et attraper des choses spéciales comme DBNull:
la source
Dans les scripts bash, j'ai trouvé que l'échappement de guillemets doubles autour de la valeur était nécessaire pour les valeurs pouvant être nulles ou contenant des caractères nécessitant une échappement (comme des tirets).
Dans cet exemple, la valeur de columnA peut être nulle ou contenir des traits d'union:
la source