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