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中文網其他相關文章!