首頁  >  文章  >  資料庫  >  為什麼我的 Python MySQL 插入不起作用?

為什麼我的 Python MySQL 插入不起作用?

Barbara Streisand
Barbara Streisand原創
2024-11-06 01:07:02315瀏覽

Why Are My Python MySQL Inserts Not Working?

Python MySQL 插入操作疑難排解

在 Python 中,使用 MySQL API 與 MySQL 資料庫交互,插入記錄可能會遇到障礙。本文解決了這樣一個問題:儘管看似正確的實現,但仍無法插入記錄。

提供的程式碼建立與資料庫的連接,並嘗試將記錄插入「文件」表中。但是,插入操作失敗。要解決這個問題,了解資料庫事務的重要性至關重要。

在 MySQL 中,資料庫的變更是透過事務管理的。交易在連線建立時開始,在連線關閉或明確呼叫提交或回滾操作時結束。事務期間對資料庫所做的任何變更在交易提交之前都不是永久的。

在提供的程式碼中,插入操作已成功執行,但在連線關閉之前更改並未提交到資料庫(使用 db.close())。如果不提交事務,一旦連線關閉,插入操作就會被丟棄。

要解決此問題並確保插入操作成功,您應該在關閉資料庫連線之前呼叫 db.commit() 。此操作提交事務,使插入的記錄在資料庫中持久存在。

以下是包含提交操作的修改後的程式碼:

<code class="python">db = MySQLdb.connect("localhost", "root", "padmaramulu", "pdfsearch")
cursor = db.cursor()
# cursor.execute("""CREATE TABLE IF NOT EXISTS documents (docid INT NOT NULL ,PRIMARY KEY(docid),docname CHAR(30)) engine=innodb""")
temp = "hello"; number = 2;
cursor.execute('insert into documents(docid,docname) values("%d","%s")' % (number, temp))
db.commit()
db.close()</code>

透過包含db.commit() 調用,在事務期間所做的變更(包括插入操作)將提交至資料庫並永久生效。

以上是為什麼我的 Python MySQL 插入不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn