問題: MySQL と Python でデータベースの自動更新が発生しない
Python コードを介して MySQL データベースの行を更新しようとすると、データベースには変更が自動的に反映されません。データベースに直接クエリを実行すると、更新が行われていないことがわかります。
考えられる解決策
この問題は、トランザクションが適切にコミットされていないことが原因である可能性があります。 MySQLdb はデフォルトで自動コミットを無効にします。接続を閉じる前に conn.commit() を追加すると、変更がデータベースに永続的に保存されます。
変更コード
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()
前にトランザクションをコミットすることにより、接続を閉じると、コードはデータベースを正常に更新し、直接クエリを実行したときに変更を反映する必要があります。
以上がPython MySQL データベースの更新が反映されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。