2010-04-07 71 views
4

好吧,我以root身份登錄MySQL命令行客戶端。然後我以root身份打開或以其他方式運行使用MySQLdb模塊的python應用程序。當我使用python(IDLE)檢查結果時,一切都很正常。當我使用MySQL命令行客戶端時,沒有發生INSERT。如果我改變_mysql而不是MySQLdb,一切正常。我會很感激任何澄清。MySQLdb沒有插入,_mysql沒有問題

「作品」,直到空閒/虛擬機復位:

import MySQLdb 
db = MySQLdb.connect(user='root', passwd='*******',db='test') 
cursor = db.cursor() 
cursor.execute("""INSERT INTO test VALUES ('somevalue');""",) 

作品:

import _mysql 
db = _mysql.connect(user='root', passwd='*******',db='test') 
db.query("INSERT INTO test VALUES ('somevalue');") 

系統信息: 英特爾的x86 WinXP的 Python 2.5的 的MySQL 5.1.41 MySQL- Python 1.2.2

回答

4

我認爲他們使用不同的自動提交設置。插入數據後使用commit()。

17

您可以使用db.commit()提交數據或在_mysql.connect(...)之後設置db.autocommit()爲自動提交請求。

+0

這對我工作,感謝張貼(近3年前)! – armani 2013-02-11 21:54:03

+0

這正是我正在尋找的。有趣的是,大多數教程不*提到這讓我感到驚訝。 – 2014-07-02 20:26:05