Problema: atualizações automáticas de banco de dados não ocorrem com MySQL e Python
Ao tentar atualizar uma linha em um banco de dados MySQL por meio de código Python, o banco de dados não reflete automaticamente as alterações. Ao consultar diretamente o banco de dados, fica evidente que a atualização não ocorreu.
Possível solução
O problema pode resultar de não confirmar a transação corretamente. MySQLdb desabilita o autocommit por padrão. Adicionar conn.commit() antes de fechar a conexão garantiria que as alterações fossem armazenadas permanentemente no banco de dados.
Código Modificado
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()
Ao confirmar a transação antes de fechar a conexão, o código deve atualizar o banco de dados com sucesso e refletir as alterações na consulta direta.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3