0
我編寫了這個腳本來用Python 2.7中的sqlite更新SQL數據庫 作爲函數的輸入,我們有一個十個元素列表,一些元素可以是None或不是,I只想更新不是無元素。python中的SQLite在提交命令後沒有更新數據庫
問題在這裏,當腳本運行時它不會返回任何錯誤,即使我嘗試了幾次「打印」行xx「」來調試並檢查腳本是否通過if,Update和commit命令。結果總是很好,但是數據庫沒有更新。 *請注意,在同一個程序中的另一個函數中,我從相同的數據庫中讀取數據,所以我有很好的讀取數據庫的權限。
def update_coin(new_data):
#data_coin is a 10 element list
id = new_data[0]
with con:
cur = con.cursor()
if new_data[3] is not None:
cur.execute("UPDATE COIN_KM SET KM_NUM =? WHERE ID_KM = ?", (new_data[3], id))
if new_data[4] is not None:
cur.execute("UPDATE COIN_KM SET ID_NUMIS =? WHERE ID_KM = ?", (new_data[4], id))
if new_data[5] is not None:
cur.execute("UPDATE COIN_KM SET DDATE =? WHERE ID_KM = ?", (new_data[5], id))
if new_data[7] is not None:
cur.execute("UPDATE COIN_KM SET TITLE =? WHERE ID_KM = ?", (new_data[7], id))
if new_data[8] is not None:
cur.execute("UPDATE COIN_KM SET DESCRIPTION =? WHERE ID_KM = ?", (new_data[8], id))
if new_data[10] is not None:
cur.execute("UPDATE COIN_KM SET MATERIAL =? WHERE ID_KM = ?", (new_data[10], id))
con.commit()
任何人都可以弄清楚這裏有什麼問題?之前我有類似的腳本,並沒有這個問題。 *我使用Ubuntu在VM中工作,我將權限更改爲777到我的數據庫和腳本。 *我運行腳本與終端像根。
你可以在'new_data'中給出值嗎?那麼我們可以執行相同的程序,看看它的工作與否,請添加完整的可執行代碼, – Nilesh
@JohnSnow,你能否提供你的進口? – lmiguelvargasf
'print len(con.execute('SELECT * FROM Coin_km WHERE ID_km =?',(id,))。fetchall())''顯示了什麼? –