問題:
Python 腳本無法更新My 資料庫,儘管執行「UPDATE ”命令並檢索成功訊息。但是,當透過 CLI 手動查詢資料庫時,該行保持不變。
程式碼片段:
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") 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()
輸出:
4 Number of rows updated: 1
觀察結果:
解:
問題可能與缺失有關交易處理。 MySQLdb 預設會停用自動提交,這表示對資料庫的任何變更都不會持久,直到明確發出提交為止。
要解決此問題,請在關閉連接之前添加以下行:
conn.commit()
這將強制將更改提交到資料庫,確保該行按預期更新。
以上是儘管出現成功訊息,為什麼我的 Python 腳本沒有更新 MySQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!