"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi les mises à jour de ma base de données Python MySQL ne sont-elles pas reflétées ?

Pourquoi les mises à jour de ma base de données Python MySQL ne sont-elles pas reflétées ?

Publié le 2025-01-21
Parcourir:124

Why Aren't My Python MySQL Database Updates Reflecting?

Problème : les mises à jour automatiques de la base de données ne se produisent pas avec MySQL et Python

Lors de la tentative de mise à jour d'une ligne dans une base de données MySQL via le code Python, le la base de données ne reflète pas automatiquement les modifications. En interrogeant directement la base de données, il est évident que la mise à jour n'a pas eu lieu.

Solution possible

Le problème peut provenir d'une mauvaise validation de la transaction. MySQLdb désactive la validation automatique par défaut. L'ajout de conn.commit() avant de fermer la connexion garantirait que les modifications sont stockées de manière permanente dans la base de données.

Code modifié

import MySQLdb

conn=MySQLdb.connect(host="localhost", user="root", passwd="pass", db="dbname")
cursor=conn.cursor()

cursor.execute("UPDATE compinfo SET Co_num=4 WHERE ID=100")
conn.commit()  # Commit the changes to the database
cursor.execute("SELECT Co_num FROM compinfo WHERE ID=100")
results = cursor.fetchall()

for row in results:
    print row[0]

print "Number of rows updated: %d" % cursor.rowcount

cursor.close()
conn.close()

En validant la transaction avant de fermer la connexion, le code doit mettre à jour avec succès la base de données et refléter les modifications lors de l'interrogation directe.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3