2010-10-17 19 views
5

Utilisation de python avec une base de données SQL sqlite - quelle est la méthode utilisée pour échapper les données qui sortent et extraire les données?python et sqlite - entrée d'échappement

En utilisant pysqlite2

Google a des suggestions contradictoires.

Répondre

20

Utilisez le deuxième paramètre args pour transmettre des arguments; Ne fais pas l'évasion toi-même. Non seulement cela est plus facile, mais cela aide également à prévenir les attaques par injection SQL.

cursor.execute(sql,args) 

par exemple,

cursor.execute('INSERT INTO foo VALUES (?, ?)', ("It's okay", "No escaping necessary") 
+0

Merci, je ne savais pas de la façon python, je suis bien conscient des attaques SQL qui est la raison pour laquelle je suis en train de trouver la meilleure façon python. Merci, je verrai s'il y a d'autres commentaires à ce sujet et j'essaierai. – Wizzard

+0

@Wizzard, unutbu a raison, cela fonctionne et vous fera économiser beaucoup de maux de tête. Pour l'autre partie de votre question: pysqlite2 vous renvoie les objets de la base de données dans le bon format, vous pouvez donc les utiliser directement comme int, float, string, datetime, ... – eumiro