sqlite3, l'apostrophe ne passe pas
bonjour,
voici le code qui me pose problème lors de l'insertion:
Code:
1 2 3 4 5 6
|
try:
curs.execute ("insert into larticle (titre, auteur, texte) values ('%s', '%s','%s')" %(strtitre, strauteur, strtexte))
curs.commit()
except SQLite.Error, error:
print error |
strtexte contient du texte et lors de son insertion, lorsqu'une apostrophe est rencontrée:
exemple: "... l'autre jour ..." ,il y a une erreur de syntaxe qui est notifiée:
near "autre" : syntax error
Je supprime l'apostrophe, l'erreur reviens à la suivante rencontrée.
Que faire ??
Merci de vos suggestions à venir
Pancrace
(-Ubuntu 8.10, Python 2.5 et sqlite3 et Geany)
sqlite, l'apostrophe ne passepas
bonjour,
Merci tyrtamos et wiztricks pour les deux réponses à ma question.
Je vais répondre aux deux suggestions:
1ère) lorsque je code values (?,?,?), j'obtiens: Type Error: not all arguments converted during string formatting.
ce n'est pas le bon choix.
2ème) la requête SQL entre triples doubles-cotes et doubles cotes pour %s, alors ce sont les " du texte à insérer qui remplacent l'apostrophe pour déclencher l'erreur et interrompre le transfert.
Une précision supplémentaire:
La saisie des données se fait par une interface en wxPython, les données sont passées par un dictionnaire vers le code contenu dans utils.py; j'ai conservé strtitre, ... pour tester si le problème venais du dictionnaire.
Non, et aucune raison..
Je laisse la question pendante..
A suivre....
Pancrace
sqlie3, les apostrophes ne passent pas
bonjour,
Je pense avoir trouvé la solution au problème de l'apostrophe.
Il faut placer la partie de la requête SQL entre triples simples cotes.
ci-dessous le code en mode console Python:
Code:
1 2 3 4 5 6 7 8
|
import sqlite3
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur execute(" create table gens (fname, lname)")
nom = "L'un"
prenom = "L'autre"
cur.execute('''insert into gens(fname, lname) values (?,?)''', (nom, prenom)) |
J'ai repris cela dans le script qui n'acceptait pas les apostrophes.C'est bon.
Je note Résolu
Pancrace