J'essaie d'écrire une instruction MySQL valide qui me permettrait de mettre à jour plusieurs colonnes dans un enregistrement avec des valeurs fournies sous forme de variables Python.
Ma déclaration ressemblerait à ceci: p>
db = MySQLdb.connect(host="localhost", user="user", passwd="password", db="dbname") cursor = db.cursor() sql_update = "UPDATE table_name SET field1=%s, field2=%s, field3=%s, field4=%s, field5=%s, field6=%s, field7=%s, field8=%s, field9=%s, field10=%s WHERE id=%s" % (var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, id) cursor.execute(sql_update) cursor.close () db.commit() db.close()
4 Réponses :
Vous utilisez la formatage des chaînes, tandis que ce que vous devriez faire est d'utiliser une requête paramétrée. Faites-le comme ceci:
Si quelqu'un a toujours un problème, j'ai suivi ce format mais cela n'a pas fonctionné. Des virgules utilisées entre plusieurs champs, puis cela a fonctionné. comme => Définir le champ1 =% s, champ2 =% s, champ3 =% s où les critères1 =% s
Peut-être qu'il s'agit d'apostrophes autour des valeurs de chaîne / varchar:
Je l'ai fait comme suit: lsnuevosval code> a tous les paramètres à remplacer dans la commande
sql code>. La valeur de
lstnuevosval code> est p>
S'il vous plaît, avez-vous en considération ces notes:
Veuillez essayer le code suivant: p>