Maison > Questions et réponses > le corps du texte
P粉5456825002023-08-21 13:22:44
Différentes implémentations de Python DB-API autorisent différents espaces réservés, vous devez donc savoir lequel vous utilisez -- par exemple (en utilisant MySQLdb) :
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
Ou (en utilisant sqlite3 de la bibliothèque standard Python) :
cursor.execute("INSERT INTO table VALUES (?, ?, ?)", (var1, var2, var3))
ou autre chose (dans VALUES
之后你可以有(:1, :2, :3)
,或者"命名样式"(:fee, :fie, :fo)
或者(%(fee)s, %(fie)s, %(fo)s)
,在execute
的第二个参数中传递一个字典而不是一个映射)。检查你正在使用的DB API模块中的paramstyle
string constantes, et recherchez paramstyle sur http://www.python.org/dev/peps/pep-0249/ pour tous les styles de passage de paramètres !
P粉9261742882023-08-21 10:38:41
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
Notez que l'argument est passé sous forme de tuple, (a, b, c)
。如果你只传递一个参数,元组需要以逗号结尾,(a,)
.
L'API de la base de données échappera et citera correctement les variables. Veuillez faire attention à ne pas utiliser d'opérateurs de formatage de chaîne (%
) car