9
votes

Python: mettre à jour plusieurs colonnes avec des variables Python

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()


0 commentaires

4 Réponses :


18
votes

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: xxx


1 commentaires

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



-2
votes

Peut-être qu'il s'agit d'apostrophes autour des valeurs de chaîne / varchar: xxx


0 commentaires

1
votes

Je l'ai fait comme suit: xxx

lsnuevosval a tous les paramètres à remplacer dans la commande sql . La valeur de lstnuevosval est xxx


0 commentaires

1
votes

S'il vous plaît, avez-vous en considération ces notes:

  • Vous devez vous assurer que l'utilisateur et le mot de passe sont corrects
  • Le nombre de titulaires de lieu doit correspondre au nombre de valeurs
  • Le type de valeurs que vous utilisez correspond au type de colonne dans votre table

    Veuillez essayer le code suivant: xxx


0 commentaires