Comment utiliser des variables pour exécuter des instructions SQL en Python
P粉725827686
2023-08-21 16:40:37
<p>J'ai le code Python suivant : </p>
<pre class="brush:py;toolbar:false;">cursor.execute("INSERT INTO table VALUES var1, var2, var3,")
≪/pré>
<p>Où <code>var1</code> est un entier, <code>var2</code> et <code>var3</code> </p>
<p>Comment puis-je écrire des noms de variables sans que Python les intègre au texte de la requête ? </p>
Différentes implémentations Python DB-API autorisent différents espaces réservés, vous devez donc savoir lequel vous utilisez -- par exemple (en utilisant MySQLdb) :
Ou (en utilisant sqlite3 de la bibliothèque standard Python) :
ou d'autres manières (dans
VALUES
之后,你可以使用(:1, :2, :3)
,或者使用"named styles"(:fee, :fie, :fo)
或者(%(fee)s, %(fie)s, %(fo)s)
,在这种情况下,你需要将一个字典作为第二个参数传递给execute
函数)。检查你正在使用的DB API模块中的paramstyle
constantes de chaîne, et consultez paramstyle sur http://www.python.org/dev/peps/pep-0249/pour toutes les façons de transmettre des paramètres !Veuillez noter que les paramètres sont transmis sous forme de tuple,
(a, b, c)
。如果您只传递一个参数,元组需要以逗号结尾,(a,)
.L'API de la base de données échappera et citera correctement les variables. Faites attention à ne pas utiliser d'opérateurs de formatage de chaîne (
%
) car