Comment utiliser des variables dans les instructions SQL en Python ?
P粉200138510
2023-08-20 17:35:10
<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 écrire des noms de variables en Python sans qu'ils soient inclus dans le texte de la requête ? </p>
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) :
Ou (en utilisant sqlite3 de la bibliothèque standard Python) :
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 !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