2013-03-30 96 views
1

我有一個問題讓我的Python腳本來更新我的SQLite數據庫。SQL更新命令與Python不工作

第一部分似乎很好地工作:

conn = sqlite3.connect('/Users/test/Desktop/my-accounts.db') 
currentAccount = None 

for row in conn.execute('SELECT email FROM accounts WHERE active=0'): 
    currentAccount = row[0] 
    print "Checking out: ",currentAccount 
    break 

if currentAccount is None: 
    print "No available accounts" 

那麼這接下來的部分我想利用可變currentAccount和更新的行在該值是分貝。

else: 
    conn.execute('UPDATE accounts SET active=1 WHERE email=?', [currentAccount,]) 

conn.close() 

我沒有在控制檯中得到任何錯誤,但數據庫不更新。電子郵件列是VARCHAR,活動列是INT。

謝謝。

SOLUTION是添加 conn.commit()執行後()

+0

我已經嘗試了作爲一個元組和列表。兩人都沒有成功更新數據庫。 – user1630543

+1

嘗試在conn.execute(「XXX」)後添加conn.commit()。有時sqlite3不會自動提交執行。 – Yarkee

+0

工作正常!謝謝! – user1630543

回答

0

我通常的做法是將SQL查詢中的一個變量,這樣我可以執行相同的檢查值。你可以發佈相同的嗎?

1

嘗試添加conn.commit()conn.execute("XXX")。有時sqlite3不會自動提交執行。

+1

現在不是某個時候,默認情況下禁用自動提交 – Dikei