Mises à jour MySQL en Python : résolution des échecs de mise à jour
Lors de l'exécution de requêtes de mise à jour MySQL dans des scripts Python, on peut rencontrer le problème où la commande update signale une exécution réussie, mais le tableau reste inchangé. Pour remédier à cela, il est crucial de comprendre le concept de transactions et de commits dans MySQL.
Les transactions sont un ensemble d'opérations exécutées comme une seule unité. Dans MySQL, une transaction commence lorsqu'une requête de mise à jour est exécutée et se termine lorsque la transaction est validée. Si une transaction n'est pas validée, toutes les modifications apportées au cours de cette transaction ne sont pas permanentes et seront ignorées.
Pour résoudre le problème décrit dans la question, l'étape manquante consiste à émettre une commande de validation une fois la requête de mise à jour terminée. exécuté. Cette commande de validation informe le serveur MySQL que toutes les modifications apportées au sein de la transaction doivent être enregistrées de manière permanente dans la base de données.
L'extrait de code suivant démontre l'utilisation de la commande de validation :
import MySQLdb dbb = MySQLdb.connect(host="localhost", user="user", passwd="pass", db="database") try: curb = dbb.cursor() curb.execute("UPDATE RadioGroups SET CurrentState=1 WHERE RadioID=11") dbb.commit() # Commit the transaction print("Row(s) were updated :" + str(curb.rowcount)) curb.close() except MySQLdb.Error as e: print("Query failed") print(e)
Par y compris l'instruction dbb.commit(), toutes les modifications apportées au sein de la transaction, y compris la mise à jour de la table RadioGroups, seront définitivement enregistrées dans la base de données.
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!