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 en fermant 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.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!