J'ai un script python qui doit mettre à jour une base de données mysql, j'ai jusqu'à présent:
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")
print "Row(s) were updated :" + str(curb.rowcount)
curb.close()
except MySQLdb.Error, e:
print "query failed<br/>"
print e
Le script imprime Row(s) were updated :
avec le nombre correct de lignes qui ont un RadioID
de 11. Si je change le RadioID
en un autre nombre non présent dans le tableau, il dira Row(s) were updated :0
. Cependant, la base de données ne se met pas à jour. Le champ CurrentState
reste le même. Si je copie et colle l'instruction SQL dans PHPMyAdmin, cela fonctionne très bien.
utilisation
dbb.commit()
après
curb.execute ("UPDATE RadioGroups SET CurrentState=1 WHERE RadioID=11")
pour valider toutes les modifications que vous avez "chargées" sur le serveur mysql
Comme l'a souligné @Lazykiddy, vous devez valider vos modifications après les avoir chargées dans mysql.
Vous pouvez également utiliser cette approche pour activer le paramètre de validation automatique, juste après l'initialisation de la connexion MySQL:
dbb.autocommit(True)
Ensuite, il valide automatiquement les modifications que vous avez apportées lors de l'exécution de votre code.
les deux réponses sont correctes. Cependant, vous pouvez également le faire:
dbb = MySQLdb.connect(Host="localhost",
user="user",
passwd="pass",
db="database",
autocommit=True)
ajouter autocommit = True