J'ai un script python qui lit les fichiers texte bruts des films dans une base de données sqlite.
J'utilise re.escape (title) pour ajouter des caractères d'échappement dans les chaînes pour les rendre db sûrs avant d'exécuter les insertions.
Pourquoi cela ne fonctionne-t-il pas:
In [16]: c.execute("UPDATE movies SET rating = '8.7' WHERE name='\'Allo\ \'Allo\!\"\ \(1982\)'")
--------------------------------------------------------------------------- OperationalError Traceback (most recent call last)
/home/rajat/Dropbox/amdb/<ipython console> in <module>()
OperationalError: near "Allo": syntax error
Pourtant, cela fonctionne (supprimé \ 'à deux endroits):
In [17]: c.execute("UPDATE movies SET rating = '8.7' WHERE name='Allo\ Allo\!\"\ \(1982\)'") Out[17]: <sqlite3.Cursor object at 0x9666e90>
Je ne peux pas comprendre. Je ne peux pas non plus abandonner ces citations principales, car elles font en fait partie du titre du film. Je vous remercie.