首頁 > 資料庫 > mysql教程 > 儘管出現成功訊息,為什麼我的 Python 腳本沒有更新 MySQL 資料庫?

儘管出現成功訊息,為什麼我的 Python 腳本沒有更新 MySQL 資料庫?

Patricia Arquette
發布: 2024-12-19 09:57:10
原創
803 人瀏覽過

Why Doesn't My Python Script Update My MySQL Database Despite a Success Message?

MySQL 和Python:資料庫更新異常

問題:

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
登入後複製

觀察結果:

  • 腳本執行「UPDATE」指令並報告成功更新。
  • 但是,透過 CLI 查詢資料庫顯示該行尚未更新。
  • 直接從 CLI 執行「UPDATE」指令會如預期更新該行。

解:

問題可能與缺失有關交易處理。 MySQLdb 預設會停用自動提交,這表示對資料庫的任何變更都不會持久,直到明確發出提交為止。

要解決此問題,請在關閉連接之前添加以下行:

conn.commit()
登入後複製

這將強制將更改提交到資料庫,確保該行按預期更新。

以上是儘管出現成功訊息,為什麼我的 Python 腳本沒有更新 MySQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板