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

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

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

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

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 預設會停用自動提交,這表示對資料庫的任何變更都不會持久,直到明確發出提交為止。

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

1

conn.commit()

登入後複製

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

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

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