Salut,
comment faut-il échapper les caractères ' dans une requête sql ?
exemple
cur.execute("Insert INTO Albums (url, date) VALUES ('/" + dirname + "', '" + curdate + "')");
le dirname pose problème.
si je fait un replace("'", "''") ça marche pas
si je fait un replace("'", "\'") ça marche pas
autre idée ?
merci
# Syntaxe à-la-printf
Posté par MsieurHappy . Évalué à 3.
ma_chaine.replace("'","''")
fait très bien le travail souhaité.Une remarque quant à la manière de faire ta requête.
La concaténation des bouts de chaine rend la requête pénible à lire.
Utilise plutôt la syntaxe à la printf. ta ligne devient alors:
cur.execute("INSERT INTO Albums (url, date) VALUES ('/%s', '%s')" % (dirname, curdate))
En outre, en python il n'y a pas besoin de mettre le point-virgule à la fin de la ligne. ;)
# À éviter absolument !
Posté par Amand Tihon (site web personnel) . Évalué à 5.
Le lien vers la documentation [http://docs.python.org/lib/module-sqlite3.html] nous apprend que ce que tu cherches à faire doit être réalisé de la façon suivante (pour du sqlite) :
cur.execute("Insert INTO Albums (url, date) VALUES (?, ?)", (dirname, curdate))
Dans ce cas, même si ton paramètre est vraiment tordu, c'est le module qui se charge de tout.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.